Software Architecture Methodology

As developers, we are focused on solving problems. And these problems exist in the space we call software development. The main challenge in this domain is to develop software with the right quality levels. So here comes the concept of Software Architecture which helps us to build a bridge between the problem space and the solution space.

Being a technical leader or manager you may think that the architecture is the job of the architect, but to truly understand the big picture, and to guide your team to achieve the mission of the product you all build, this aspect is mandatory to be on your to-do list, not just on your team’s list.

“Software architecture is the fundamental organization of a system embodied in its elements, relationships, and in the principles of its design and evolution.” [IEEE Std. 42010-2011]

“The shared understanding that the expert developers have of the system design. Architecture is about the important stuff. Whatever that is.” [Ralph Johnson, one of the authors of “Design Patterns: Elements of Reusable Object-Oriented Software”, GOF]

Continue reading “Software Architecture Methodology”

Smile, it’s CameraX! [analysis and extensions]

Image analysis and applying extensions when pictures are taken are use cases often accessed by the users. By using CameraX API we are able to implement them in a very simple way. If you want to learn more check the code samples and the theory behind these features in the current article.

Continue reading “Smile, it’s CameraX! [analysis and extensions]”

Smile, it’s CameraX! [intro]

As humans, we have emotions and feelings and one of the best ways to capture our emotions is to take pictures. 

Some of our greatest experiences are actually captured in pictures. For sure each one of us have pictures from birthday parties, holidays, travels, conferences. We also like capturing feelings like happiness or reactions when bad surprises happen. And, in the latest years, we discovered that we love taking selfies.

Continue reading “Smile, it’s CameraX! [intro]”

Kotlin Basics

In my previous article we discovered details about how Kotlin was designed, what is the philosophy behind this new programming language and how its popularity has grown over the past years.

In this article we’re going to continue with some basic concepts from Kotlin Wonderland like the available types, control flow instructions, equality checks and null safety.

kotlin-basics-magda-miu

Continue reading “Kotlin Basics”

Workout your tasks with WorkManager — Advanced Topics

“WorkManager is a library for managing deferrable and guaranteed background work.”

In my previous two posts about WorkManage I covered topics like:
  • Android memory model
  • Android battery optimizations
  • Current background processing solutions
  • Where is WorkManager placed in the background work schema
  • WorkManager components: Worker, WorkRequest and WorkManager
  • Constraints
  • Input/Output Data

Continue reading “Workout your tasks with WorkManager — Advanced Topics”

Workout your tasks with WorkManager - Main Components

“WorkManager is a library for managing deferrable and guaranteed background work.”

In my previous post I covered details about the Android memory model, battery optimization features, current background processing solutions and what are the main advantages of WorkManager and where it should be used.