The one constant of working in mobile is change, which honestly can suck. You spend time learning a framework inside-and-out and then there’s a new thing that all the cool kids use now or conventions get up-ended or functionality becomes deprecated or just breaks. It happens and in Android, it happens all the time. Change is good: it’s technology progressing and improving. The hard part is adapting without feeling frustrated or left behind. In this talk I’d like to share with you some of my stories, struggles, and strategies for going with the flow, keeping up, and embracing change without going crazy in Android.
I want to talk about keeping up with tech, particularly in mobile and Android. Some of the things I will cover will be common sense that you already know. Perhaps there is something that happened to me that I found a way of dealing with and it might resonate with you.
How I Got Into Android
From 2008 to 2011, I was working with a technology called Adobe Flex. As I was learning and building a community, Adobe donated Flex to the Apache Foundation, noting that they believed HTML5 would be the future of web applications.
I was sitting in an airport when I read about this and feared that I would need to get a new job; move into a different technology. I sometimes spent weeks and months without a job.
Get more development news like this
One of my friends, while still developing on Flex, mentioned being interested in Android. Initially, I was dismissive of the idea, as iPhones were already available. But, because I needed work, I spent my time learning Android, and while at my first job as a mobile developer, I discovered that I loved it. I had the ability to build beautiful things that people can hold in their hands.
I never want to get the feeling where I’m sitting in an airport wondering what to do next for work. The reality is that it’s impossible to pick a technology, and believe that you can do it for the remainder of your life. My experience taught me you can never be comfortable, and that what we do today is assuredly not what we will be doing five, ten years from now. It’s not that we need to pick the correct tech, but that we have to understand what we need to do to keep up with it and be okay with that.
The friend who introduced me Android saved my life is now my fiancée. That friendship worked out and so did Android.
This idea of adapting to the latest technology, Bruce Lee encapsulated it well when he said,
“Empty your mind. Be formless, shapeless water. You know you put water into a cup, it becomes the cup. You put water into a bottle, it becomes the bottle. You put water into a teapot. It becomes a teapot. Now water can flow or it can crash. Be water, my friend.”
This is us, we are the water who may move from technology to technology, from container to container, while our experiences, skills, and our ability to problem-solve will be the same.
Though I’m working with an entirely different technology, mobile versus web, my life is actually the same in certain ways. I still go to a conference now (Google I/O versus Adobe Max), I’m still making UI in XML, and I’m still watching Chet Haase explain to me how to do cool things in development.
With that in mind, I believe that changes in Android and in tech overall are a good thing. Change is tough, and it’s difficult to know what Android will be like in 10 years, and if it will still exist.
Overall, change is a good thing. Changes can help us bring the new and improve things. Change brings work; it takes work to adapt to changes and to learn. Even apart from the platform itself, libraries, tools, and patterns change often. For example, when Don Felker tweeted that RxJava 3 preview is out, I thought to myself about how I have not even started with RxJava 2 yet.
Sometimes it feels easier to just stick with what you’re doing right now, as it’s the path of least resistance. But you just can’t remain because there might be an alligator waiting for you at the bottom of that serene and gross looking water. You have to keep moving and go where the tech takes you.
How to Keep Up with Android?
The number one thing that I think has helped me in my career and that hopefully, you might know already is a community. It’s been the most valuable tool for learning what’s new and how to do things. A community means more than just meetup groups, there are also Google Developer groups, and conferences such as Google I/O and 360 AnDev. It’s important to be local and sharing what you learn.
A traditional and reliable way of keeping up to date with Android is blogs. We have a diverse community, and there are many people cranking out incredible content that I think it’s important to go to a blog every week to check on things.
Because it’s difficult to filter out the amount of information, newsletters are great, as it’s curated content. If you haven’t already, sign up for Android Weekly and other weekly Android tech related news letters.
The Android community has a good Android developers’ subreddit. It’s moderated by awesome people in the community, some of whom are GDEs.
Oftentimes Twitter can be a firehose of all kinds of things going on. But often, when I hear of something new and interesting, it’s through Twitter. There are official Twitter accounts that you can follow from the general Android Studio teams and individual Googlers who are always posting out cool things that they’re doing or when they’re releasing new things.
Digital chat communities
If you do not live near a local meetup, there are digital chat communities where you can get much of the same benefit.
There are many different podcasts where you can get information. A great thing about podcasts is that you can listen to them while doing errands or housework.
Here are some podcasts I recommend:
- Android Developers Backstage by Chet Haase and Torn Norby
- Fragmented Run by Donn and Kaushik
- Talking Kotlin
Focus on the Big
Do not worry about paying 100% while trying to soak up the information. So long as you can find one thing, concept, feature, or tool that you didn’t know before, it will be worth it. I like to use Pocket to organize my information. It’s available both on the web and mobile, and it allows you to bookmark, download, and sync across devices.
Try to write down the new information, and bookmark it later for future research. Writing reinforces the information in your brain and will help you remember it.
When it comes to keeping up to date with Android, you may just have to implement or integrate certain APIs or libraries. Because there are different ways of implementing things, it’s ideal to follow tutorials. Google tutorials are a good source.
Perhaps a full tutorial is not what you need, and you can be better served with a quick two-minute video that explains how to do something specific. Codelabs are great for this.
There are a lot of great open-source projects that have working examples of things. Sometimes the best way to learn is to take it, experiment with it, and try to get it working the way you want it. The Android Architecture Blueprints project is an example of this. It uses a basic to-do app, and it implemented using different architectures.
Instead of doing tutorials, my coworkers started doing Advent of Code, which is a coding challenge with different puzzles. He taught himself Kotlin by going through Advent of Code.
Keeping Up At Work
The ideal thing to do is to keep up your learning at work. It depends on your project, but it’s great to be able to bring in a new integration or framework to an existing project.
But, there may be different hurdles to doing this. Perhaps:
- You are at a big company that has different levels of approval.
- You work on an SDK where it’s important not to risk introducing bugs to the project.
Going with the Flow
I spoke about going with the flow and fitting the container that you’re in, but this does not mean automatically doing whatever everyone else is doing, instead, you should follow the trends that benefit you.
Whenever you approach something new, be curious and ask questions about it. Be critical, and consider the advantages and disadvantages before making the decision.
About the content
This talk was delivered live in July 2017 at 360 AnDev. The video was recorded, produced, and transcribed by Realm, and is published here with the permission of the conference organizers.