Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

This Week in Mobile: Improved iOS Architectures, Improved Android Productivity

DZone's Guide to

This Week in Mobile: Improved iOS Architectures, Improved Android Productivity

Want to do something different with your iOS app architecture? Want to make yourself a more productive Android developer? DZone’s got your back.

· Mobile Zone
Free Resource

Download this comprehensive Mobile Testing Reference Guide to help prioritize which mobile devices and OSs to test against, brought to you in partnership with Sauce Labs.

Along with the usual great links from around the web, the one project that really caught my imagination was ImagineEngine from John Sundell. As someone who has always wanted to build a 2D game, it’s difficult to ignore this library! 

iOS 

Swift 4.1 has been kicked off, scheduled for release in Spring 2018.

How Not to Get Desperate with MVVM Implementation talks about how to adapt MVVM and write a simple app from scratch using the architecture. 

On the topic of architecture, iOS Architecture: A State Container Based Approach is something a little different to consider. The best thing about this article is the honesty at the end, in showing the drawbacks, highlighting that there really is no silver bullet. 

Swift Bindings and Reactive Data Sources put Bond and ReactiveKit together to handle data changes in your user interface. 

Forget DataSource & Delegate: A New Approach to UITableView gives a declarative way to handle UITableViews, making everything simpler, with less boilerplate code.

Making Life Easy with ExpressibleByArrayLiteral in Swift shows you how to easily adapt the protocol to create list types

Some projects to check out:

  • ImagineEngine: A project to create a blazingly fast Swift game engine that is a joy to use.
  • ViewAnimator: ViewAnimator brings your UI to life with just one line.
  • Flow: A new declarative approach to populate and manage UITableViews.
  • PagingKit: PagingKit provides customizable menu UI. It has more flexible layout and design than the other libraries.

Android

Here’s something that you’ll really want to get a handle on - The Top (Unknown) Keyboard Shortcuts in Android Studio.

And if that doesn’t improve your flow, then maybe considering this tip to Boost Your Android Productivity: Use Compound ViewGroups

In the spirit of there being an operator for everything in RxJava, learn how to Implement Search Using RxJava Operators

You might be surprised how a large app size discourages people from downloading from the app store. So, Reducing APK Size: A Quick Hack shows you how to get around this by reuse of resources. 

It’s almost heresy in the Android world, but I think it’s worth reading The Case Against Annotations

Some projects to check out: 

  • OkSocket: A blocking socket client for Android applications.
  • OfflineSampleApp: Sample Offline-First MVVM app that uses Android Priority Job Queue, Room, Retrofit2, LiveData, LifecycleObserver, RxJava2, Dagger Android.

General 

Here’s a decision-making technique that you can apply to almost anything - The 10/10/10 Method: Make Decisions Like Warren Buffett and Ray Dalio.

Give your design skill the edge by Using Psychology to Design Your Product.

Analysts agree that a mix of emulators/simulators and real devices are necessary to optimize your mobile app testing - learn more in this white paper, brought to you in partnership with Sauce Labs.

Topics:
ios ,android ,java ,swift ,mobile ,mobile app development

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}