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

This Week in Mobile: Swift Generics and Android List Tricks

DZone's Guide to

This Week in Mobile: Swift Generics and Android List Tricks

In this article, we'll try to get a real understanding of how generics work in Swift, and see some simple little tricks for lists on Android.

· Mobile Zone
Free Resource

Launching an app doesn’t need to be daunting. Whether you’re just getting started or need a refresher on mobile app testing best practices, this guide is your resource! Brought to you in partnership with Perfecto

Among this week's mix of articles, there's a very sobering story called Surviving the App Store about one successful (and admittedly lucky) indie game dev's climb to the top of the Apple App store—how it paid well, but not as well as you may think. The typical indie developer can expect to make $5,000 at best. You have to take Apple's toll and other taxes into account. It's not all bad, and there's plenty of tips in the article about how to get the best possible gains for yourself through getting your app featured and more. It's an essential read.

iOS 

Generics are extremely powerful and can change your codebase for the better. Check out Gemma Barlow’s tutorial on Swift Generics to get started with them today. 

If you've found closures to be a bit of a vague topic, check out this Introduction to Closures in Swift 3. Perhaps it will provide some closure for you.

Apart from the usual MVC and MVVM patterns, you'll also hear about the VIPER architecture. It might just be the silver bullet for your app's needs, so make sure to check it out. Find out more about it in Building an iOS App With VIPER Architecture.

Wondering if you're making the most of all the tools and frameworks out there? Check out My Development Toolset for 2017—you might find some gems in there!

Erica Sadun has a useful tip on adding keyboard shortcuts in Xcode

Some projects to check out: 

  • NextLevel: Rad Media Capture in Swift
  • CTPanoramaView: A library that displays spherical or cylindrical panoramas with touch or motion based controls
  • YNDropDownMenu: Awesome Dropdown menu for iOS with Swift 3.
  • CleanArchitectureRxSwift: Example of clean architecture of an iOS app using RxSwift.
  • panelkit: UI Framework that enables panels on iOS.

Android 

In the first part of what seems like an excellent series on configuring Android projects, see how Little Things Matter like gitignore, flavors, proguard, and more. 

Android Data Binding: List Tricks takes you through some essential tips for making list creation and population for your app even easier. 

RxJava can be eye opening once you get it, but the problem is just trying to understand it in the first place. That's why you should read Understanding RxJava Subject - Publish, Replay, Behaviour, and AsyncSubject.

Some projects to check out: 

  • ExpectAnim: Describe your animation and run!
  • CameraKit-Android: One of the hardest Android APIs made into a high-level and easy-to-use library that solves all of your problems.
  • StatefulLayout: Android layout to show template for loading, empty, error, etc. states
  • Shuttle: Shuttle music player.

General 

Life in the app store is tough—one day you're everyone's favorite app, the next you're stuck at the bottom with the majority of apps that get published. Read the lessons learned by Amir Rajan, creator of A Dark Room iOS, that hit number one in the App Store not so long ago. 

Everyone looks for crazy growth for their company, but is it a good thing? Read about how Exponential Growth Devours and Corrupts.

Keep up with the latest DevTest Jargon with the latest Mobile DevTest Dictionary. Brought to you in partnership with Perfecto.

Topics:
ios ,swift ,java ,android

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

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

{{ parent.tldr }}

{{ parent.urlSource.name }}