Java got me into Android development. Kotlin made me stay. Years later, I still build Android apps for fun.
I did not start my career wanting to become an Android developer.
For most of my professional life, I was the .NET guy.
C#, business applications, databases, internal systems, desktop software, APIs. That was the world I knew well.
Then one day, the company I was working for needed an Android application.
There was one small problem.
I did not know Android development.
And at the time, Android meant Java.
So I had to learn it.
Going from C# to Java
Coming from .NET, Java felt familiar enough that I could get moving quickly.
Classes looked familiar.
Interfaces looked familiar.
Object-oriented programming was still object-oriented programming.
But Android itself was completely new territory.
Activities.
Fragments.
XML layouts.
The Android lifecycle.
Permissions.
Adapters.
Intents.
Gradle.
Suddenly, building a button was the easy part. Understanding everything happening around that button was the interesting part.
I remember spending a lot of time trying to understand why an application behaved one way when I launched it normally and another way after Android recreated an activity.
Coming from desktop development, that took some adjustment.
But something unexpected happened.
I started enjoying it.
Android felt different
Most of the software I had built professionally was business software.
CRM systems.
Financial applications.
Reporting systems.
Automation tools.
Software designed to solve operational problems.
I still enjoy building those systems. In fact, they remain a big part of what I do today.
But Android development scratched a different itch.
You build something, install it on a phone, tap the icon, and suddenly your software feels like a physical thing.
It lives in your pocket.
You swipe through it.
You touch it.
You immediately notice whether an interaction feels smooth or annoying.
That feedback loop is addictive.
Android development slowly became something I enjoyed doing even when nobody was asking me to do it.
Then Kotlin showed up
Eventually, Android development started moving toward Kotlin.
At first, I was skeptical.
Java worked.
I already knew Java.
Why introduce another language?
Then I actually started using Kotlin.
And my position changed pretty quickly.
Kotlin removed a surprising amount of ceremony.
Null safety was better.
Data classes were convenient.
Extension functions were useful.
The syntax was cleaner.
Coroutines eventually made asynchronous code much nicer to work with.
Going back to Java after spending enough time with Kotlin started feeling unnecessarily verbose.
Today, if I am starting an Android project, Kotlin is the obvious choice for me.
And once Jetpack Compose matured, Android development became even more enjoyable.
Jetpack Compose changed the experience again
One thing I never particularly loved about traditional Android development was constantly jumping between XML layouts and Java or Kotlin code.
Compose changed that dynamic.
Building UI directly in Kotlin feels much closer to the way I naturally think about an interface.
A screen becomes a composition of components.
State changes.
The UI reacts.
You iterate quickly.
For someone who has spent years building web applications, desktop applications, and business software, Compose feels surprisingly comfortable.
It also made Android one of those technologies I regularly come back to simply because I want to build something.
Not because a client requested it.
Not because my employer needs it.
Just because it is fun.
My latest Android side project
Recently, I wanted to build a resume builder.
Nothing revolutionary.
Just a focused Android application that lets someone create a professional resume without needing an account, a browser, or a complicated setup.
I started with a simple idea.
The user should open the app and immediately understand what to do.
So instead of one giant form, I broke resume creation into steps:
- Personal details
- Professional summary
- Work experience
- Education
- Skills and additional information
- Template selection
- Preview and PDF export
You can also jump directly between sections instead of repeatedly pressing Next.
That small detail matters more than it sounds.
Once a resume already exists, users usually know exactly what they want to change.
They should not have to weave through five screens just to edit their education.
The PDF part became the interesting problem
The editor itself was straightforward.
The PDF renderer was where things became more interesting.
A resume looks simple until you have to generate one dynamically.
What happens when an experience description is too long?
What happens when a section starts at the bottom of the page?
Do you split an education entry between two pages?
How do you make the preview match the exported PDF?
How much spacing should exist between sections?
How do you wrap text based on its actual rendered width instead of guessing based on character count?
Those details compound quickly.
I ended up building pagination directly into the PDF renderer so longer resumes can naturally continue onto additional pages.
The preview is also rendered from the same PDF engine used for export.
That means the preview is not pretending to represent the final document.
It is the final document.
I also wanted two very different resume styles
The app currently has two templates.
The first is a clean ATS-oriented resume.
Simple structure.
Easy to scan.
Traditional presentation.
The second is the one I enjoyed building the most.
It is a two-column design with a blue sidebar containing contact details, skills, languages, and certificates.
The main area contains the summary, experience, and education.
Getting that layout to paginate properly was much more interesting than simply drawing a nice-looking page.
A template can look great with perfect demo data and completely fall apart once a real user enters twice as much content.
That is the part of development screenshots rarely show.
The app became something I wanted to release
Originally, this was another Android project I was building because I enjoy Android development.
But once it reached the point where it had:
- Local resume storage
- Automatic saving
- Multiple resumes
- Resume duplication
- ATS and two-column templates
- PDF preview
- Automatic text wrapping
- Multi-page PDF export
- AdMob integration
- A proper guided editor
I realized there was no reason to leave it sitting in one of my project folders.
So I packaged the complete Android Studio project.
The source code is now available as Resume Builder Premium.
If you are an Android developer, indie developer, or someone learning Kotlin and Jetpack Compose, you can use it as a starting point instead of rebuilding the entire foundation yourself.
👉 Resume Builder Premium Android Source Code
It is built with Kotlin, Jetpack Compose, Material 3, local JSON persistence, Android's PDF APIs, and Google Mobile Ads.
The idea is simple.
Take the working foundation, change the branding, customize the templates, replace the AdMob IDs, and go from there.
Why I still build Android apps
Android development is not my only area of software development.
Far from it.
I have spent more than a decade working with software, particularly .NET, Python, business applications, financial systems, automation, APIs, databases, and reporting tools.
But Android has remained one of those things I genuinely enjoy.
There is something satisfying about watching an application go from an empty project to something you can hold in your hand.
Maybe that is why I keep coming back to it.
I originally learned Android because a company needed me to.
I kept building Android apps because I liked it.
Sometimes your employer pushing you outside your normal stack ends up introducing you to something you would never have pursued on your own.
That happened to me with Android.
And I am pretty glad it did.
About me
I'm Ayman Atif, a software engineer focused on building practical software for businesses.
Over the years, I've worked on business applications, CRM systems, financial and reporting software, automation tools, APIs, and mobile applications using technologies including .NET, Python, Kotlin, and Java.
If you'd like to see more of my work, projects, and what I build:
👉 Visit my software engineering portfolio
And if you are interested in the Android project discussed in this article:
👉 Get Resume Builder Premium
I’ll probably keep building Android apps whether they become products or not.
At this point, it is partly software development and partly a hobby.
And those are usually the projects I have the most fun building.
Top comments (0)