This Week in Mobile: Effective Java for Android and Clean Architecture for iOS

DZone 's Guide to

This Week in Mobile: Effective Java for Android and Clean Architecture for iOS

We’re heavy on reactive programming for Android, effective Java, and clean architecture for iOS. Every week, we do our best to make you a better app developer.

· Mobile Zone ·
Free Resource

This week, I’ve been battling with PDFRenderer as I develop my latest Android feature and wonder why fragmentation has to hurt so bad! I’ll talk more about this later, but if PDFRender has got you down, try out AndroidPdfViewer from @barteksc on Github. You may never look back! 


Effective Java was one of my favorite books as a Java developer. Effective Java for Android is a useful cheat sheet that takes the ideas from that book and applies them to Android development. 

It can be tough to make an application seem responsive when your data takes some time to come in and get reflected in the UI. In Android Data Binding: Animations, you’ll see how to deal with these cases. With examples in Java, RxRecipies: Wrap Your Way to Rx shows how you can start taking advantage of reactive programming by wrapping code with fromCallable() to create observable stream sources. Still on the reactive programming theme, Testing Asynchronous RxJava Code using Mockito will show you how to achieve better levels of TDD for your app.

In The Quirks of Supporting SDK 25, Zarah Dominguez explains some of the finer details on moving up to the latest and greatest on Android. 

Somewhere along the line in your Android developer career, you’re going to need to draw a custom view. Here are some tips for doing just that.

Some projects to check out:  

  • ScrollablePanel: A flexible view for providing a limited rect window into a large data set, just like a ttwo-dimensionalRecyclerView. 
  • AdBlockedWebView-Android: An implementation of WebView with an ad-blocked interface, blocking banner and video ads from web pages.
  • Yalantis/ToDoList: Micro-transitions for smooth Android to-do list animations.
  • Cadar: Month and list calendar views.


Clean architecture can make all the difference in the maintainability and stability of your app. In Architectural Superpowers, you’ll be taken through some essential principles to make this a reality.

Some developers really hate using Xcode’s Interface Builder. If you want out, check out Eject, a service that allow you to get all that XIB stuff into code, for more programmatic views. 

Introduction to Delegate in Swift gives a proper explanation of what delegates are all about. If you’ve ever wondered what things like UITableDelegate were really all about, this is for you! 

Confused about all the different modal options that are out there? Custom Modality runs through the options and tries to make the selection process a little easier for you. 

How often do you skip documented your code at all? Me too! Here are some best practices for code documentation in Xcode. 

This week’s projects: 

  • Keyframes: Library for converting Adobe AE shape based animations to a data format to play back on Android and iOS devices.
  • Framework: Template for new Swift framework projects ready with travis-ci, cocoapods, Carthage and SwiftPM.
  • CreditCardForm-iOS: An iOS framework that allows developers to create a UI that replicates an actual credit card.
  • pxctest: Execute tests in parallel on multiple iOS simulators.
  • arek: A clean and easy to use wrapper over any kind of iOS permission. 


This will resonate with designers, or developers who have gone into the design arena: Design Assets, Version Control and You.

We’re moving to invisible apps, where people want to be able to use voice commands instead of clicking. Basic Principles for Designing Voice User Interfaces brings you through the essentials. 

A Usability Test on the Starbucks iOS App shows some design enhancements that could be made to an app that is already considered pretty good. 

In the backlash against cross platform frameworks, none has suffered more than Titanium. However, there’s a lot of misconceptions out there about it. Jason Kneen has produced a list where he debunks these myths.

ios ,swift ,java ,android ,mobile

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}