@brwngrldev - May, 2017
"My mission in life is not merely to survive, but to thrive; and to do so with some passion, some compassion, some humor, and some style.” - Maya Angelou
Hello! Welcome to the eighth issue of my newsletter. I have some exciting news to share: my Lynda.com course has been released!!! Developing Android applications that work seamlessly offline has been my main focus for the past year. If you're an Android developer, you know that there are so many data persistence options to choose from. In this course, I review various options for storing your app's data in a database. I start with vanilla SQLite, move on to Cupboard, and end with Realm. I’m very excited to get feedback on this course. So if you don’t have a Lynda.com/LinkedIn Learning subscription, please use my trial link for 30 days of free content to check it out. Now, let’s get into the main content...
Upcoming Engagements
Google I/O - https://events.google.com/io/
I won’t be speaking at Google I/O, but I will be in attendance. This is the must-attend event for those interested in Google Technologies every year. Once again it’s going to be at the Shoreline Amphitheatre in Mountain View, CA. Here’s hoping for nice weather! If you’re going to be in attendance as well, please say “hi” if you see me around. Looking forward to meeting you!
360|AnDev - https://360andev.com/speakers/annyce-s-davis/
I’ll be presenting my talk, “First, Do No Harm”. Really excited to be participating in this conference. It’s run by some of my favorite Android folks: Chiu-Ki Chan and Dave Smith. Also, this will be my first time in Denver, CO. Anything I should try while out there? Favorite foods? Local drinks? Let me know.
Books I’m Reading
Kotlin In Action - http://amzn.to/28QLPZt
I started reading this book back in June of last year when it was in EAP. I would read a page here and there and move on. That’s no longer the case! With the 1.1 release of Kotlin, I decided it was time to go all in. I picked up my book again and have been reading it from cover to cover. At the same time, I made it a quarterly objective to get Kotlin into my company's codebase. This has helped me to speed up my understanding of the language, as I’m using it in a real-world application. If you’re interested in learning Kotlin, I recommend joining the Kotlin Slack. The folks there have been very helpful and patient with my newbie questions. It’s a great place to understand the nuances of the language.
Let’s Talk Podcasts
Fragmented - Ten Testing Strategies with Michael Bailey
This was a great episode for those who want to up their testing game. Donn and Michael shared ten strategies or tips for having good test coverage. What is nice about their recommended approach is the focus on not getting overwhelmed and instead gradually improving the way you handle testing. They went into detail about WireMock and MockWebServer, tools which allow you to fake your API requests/responses during testing. Towards the end of the episode Michael brought up mutation testing. This was pretty cool to hear about, I’d love to see an example of someone using it on Android. If you know of a sample project, send it my way.
Test Talks - Continuous Testing Management Made Easy with Eran Sher
Continuing on with the testing theme, this episode of Test Talks was really informative. Eran Sher, talked about something called “quality holes”. This is where you introduce code changes into your application without having the proper test coverage. This would include regression, API and unit tests. He also advocates for having a quality dashboard that everyone on the team has access to. This will keep all accountable and assist with maintaining high quality code. I like the idea of a dashboard. Would be cool to have one that posts to Slack everyday to lower the barrier for consumption.
Android Developers Backstage - Gradleweiss
This episode was a trip down memory lane. Tor and Xavier reminisced about the "good ol' days" of building projects with Ant and Eclipse. Although, Gradle build times are often fodder for memes, it’s a huge improvement over what used to be. The ability to have build variants so simply is what originally made me switch over to Gradle. I haven't looked back. Xavier was also very upfront about the need to streamline the documentation and release notes to make it easier for developers to upgrade. I’m happy with the improvements in the Android Gradle Plugin, and look forward to the upcoming enhancements.
Must Watch Videos
Data Modeling Best Practices with Realm - https://realm.io/webinar/2017-04-04-data-modeling-realm
One thing I’ve been hearing a lot about is the Realm Object Server. This was released by Realm about a year ago. It offers a way to sync your local Realm with a remote Realm with little overhead. In this webinar, I finally understood the benefits of such a model and how it works under the hood. The presenters also explained the benefits of having multiple Realm files in a single application. I plan on using this technique to isolate data for multiple users that log into my application from the same device.
Extremely Fast Android Builds with Gradle - https://www.youtube.com/watch?v=BKRK4SvMtRk
This talk was very informative. If for nothing else, you should watch it to understand why Android Gradle builds are often slow. It was nice to see the comparisons of the build times between the various Gradle versions and Buck. I immediately went and started upgrading my Gradle projects after watching it. You should likely do the same ;-)
My Recent Videos
As you know, I’ve been working on creating a few videos each month. Here’s a listing of my latest videos:
Android Job: Inspecting Your Stored Jobs with Android Debug Database
Android Job: Scheduling Periodic Work – Creating a Multi Purpose Job Creator
Sidebar: Several people have been asking me about the process I use to develop my conference talks. I have been thinking of putting together an informal series on my YouTube channel. If that sounds like it would be useful/interesting to you drop me a line and let me know.
Until next time, thanks for reading!
Blog: http://www.adavis.info
Newsletter: http://tinyletter.com/brwngrldev
Twitter: https://twitter.com/brwngrldev