Android Development Thoughts
Components working in harmony

Android Development Thoughts

Intro

Looking at software developers, in macro perspective, we're all about the same. We share common knowledge of coding and software development, that we're either been taught or self learned. We create new software, maintain it, fix it when it's broken, and often get angry about how bad the code is we wrote 6 months ago.

In macro terms, that's pretty much the same for all of us. It doesn't matter what frameworks we use, or which language we're programming in, whether you're a freelancer, a junior, or a well seasoned veteran. We write code and we love it.

Well, I sure do, and I hope you do as well :)

The Eco-System

Looking one inch deeper, at some point this starts to change. Details like frameworks, tools, devices, operating systems, etc, can make a difference in our work. They often require code to be written in certain ways to function properly. It changes the way we think.

In Android, as in other system, it is indeed making a difference. The operating system is working in its own way, forcing us to adjust our code to ensure our application run as expected. The user doesn't really care what happens behind the scenes when he/she is using split screen or forgets the application in the background for a while and then reopens it.

?Being an Android developer forces us to write software applications that are designed to operate within the Android ecosystem. They should behave well, and be good citizens on the Android platform.

Sometimes, due to struggles or tight schedules we tend to forget it. Perhaps we think of it as less important. We write some code, make sure it runs and looks fine on a brand new device, that has a large screen and runs on the newest Android OS. Writing great Android applications isn't all about how the UI looks. It is about how it performs overall.


Ecosystem

The Android Way

In Android, there are many factors that come into play. Writing an application requires us to take into consideration OS behaviors and limitations such as:

  • Doze Mode
  • Configuration Changes
  • Process Death
  • Background Execution Limitations
  • User Granted Permissions
  • Backwards Compatibility
  • Multi-Window Mode
  • Adaptive Layouts

Wait, so you're telling me that Android developers should take all of that into consideration when developing Android applications? Well, yeah, if you want your app to work properly.

While it does sound like a lot of work, and sometimes it is, we can often choose to not fully support all those behaviors. For example, to some products, restoring the full process state after death might not be applicable, and for others it might be. Of course, those decisions vary between work places and products.

Be Awesome

Putting Android aside and going back to the software development roots - we're all here to create awesome software! As developers, we should follow best practices, design fine architecture, use design patterns, stick to common principles, and more. Write code you will admire, believe in, that you're eager to show to others and be proud of!

"Aim at perfection in everything, though in most things it is unattainable. However, they who aim at it, and persevere, will come much nearer to it than those whose laziness and despondency make them give it up as unattainable"

Be awesome at what you do!


Useful Android Resources:

Configuration Changes

Adaptive Layouts

Doze & Stand By

Process & App Lifecycle

Backwards Compatible UI

Permissions Best Practices

Compose Performance Best Practices

Improve Performance?

Security Guidelines

Google I/O

Android Developers DevBlog

Sample Apps

Architectural Approaches (Architecture)

Jetpack Capabilities (Jetnews)

Showcase (Now In Android)

Tal Gruenwald

VP R&D | Chief Digital & Data Officer | Executive Management

5 个月

Interesting

  • 该图片无替代文字
回复
Roy Hen Engel

Android Software Engineering | Engineering Management | Training & Mentoring

5 个月

Great article!

回复
Ben Nabet

Engineering Team Lead at Sweetch

5 个月

Couldn't say it better! Our last decade well summarized ?? Loved it! Thanks!

Magen Yadid

CTO at Matrix Mobile | Founder at Null-Edge | Empowering Businesses with Offshore Development, CTO Services, and Application Growth Consulting

5 个月

Love this ????

要查看或添加评论,请登录

Michael Groenendijk的更多文章

社区洞察

其他会员也浏览了