DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
11 Monitoring and Observability Tools for 2023
Learn more

This Week in Mobile: Messaging Done the Right Way

The highlight story of the week has to be how Airbnb execute their messaging sync well. There's lessons for us all in there.

James Sugrue user avatar by
James Sugrue
CORE ·
May. 12, 17 · Review
Like (6)
Save
Tweet
Share
3.44K Views

Join the DZone community and get the full member experience.

Join For Free

How many of us have written messaging or chat features in our apps and failed? A lot! And that's why you should pay good attention to Airbnb Engineering's latest article on message sync. There's a bit of everything this week, from Dagger, to your options to fail in Swift.

Android 

Integrating messaging into your app is always difficult, and the team at Airbnb have had their share of problems with the feature too. Scaling Mobile Messaging at Airbnb explains how their messaging sync now works, and how they got around those initial problems that caused a less than satisfactory user experience. 

Thinking about bringing in Dagger 2 to your project? Then you should go through this complete guide, with all the references you need to get started. 

When it comes to Kotlin vs Java for Android development, Kotlin seems to win every time, hands down. Here’s the latest article in support of Kotlin for a commercial project. 

While I was playing around with RxJava this week, I found yet another great piece of advice from Dan Lew on how to Load Data from Multiple Sources with RxJava. If you’re ever stuck with something in Rx, his blog should be your first port of call. 

This nice little effect shows you How to Make a Button Morph into a Form.

Some projects worth looking at: 

  • AwesomeQRCode: An awesome QR code generator for Android.
  • AdaptableBottomNavigation: A simpler way for implementing the bottom navigation view on Android.
  • MVPArms: A common architecture for Android application based on MVP, integrating Dagger, RxJava, and Retrofit.
  • bubble-scroll: An animated scroll bar.

iOS 

You’re probably using @escaping in your code, but if you’re not completely clear why, then read What in the World is an “Escaping Closure” in Swift?

Picking the Right Way of Failing in Swift takes you through some language features that handle failure, from simply returning nil to assert(), precondition() and using throws. Essential reading for API developers. 

Loading Images in iOS Without Dependencies shows how you can avoid libraries and use a few simple lines to load up remote images. It doesn’t work for every single situation, but it’s a good approach. 

Check out this useful tip about chaining closures in Swift. The article even gives you a nice Protocol you can take and implement in your own projects.

Some projects worth looking at: 

  • Komponents: React-inspired UIKit Components. 
  • XcodeColorSense2: An Xcode source editor extension that shows hex color info. 
  • LicensePlist: iOS license plists generator.
  • ShadowImageView: An Apple Music cover picture shadow style image library. 
  • Pastel: Gradient animation effect like Instagram. 

General 

Storyboarding in UX Design is a nice way to give real context to how your app will be used by your customers. Using visuals, the whole story comes to life.

Although most app developers feel they can handle it, design is a real thing that takes lots of time. However, if you want to know enough to get by, check out How to Not Suck at Design: A 5 Minute Guide for the Non-Designer

App Builders Before They Were Famous: WhatsApp’s Jan Koum, gives the backstory behind one of the most popular apps out there. It’s a good series and shows how you have to start from somewhere before the fame and glory. 

See how one designer who got rejected for a post with the Apple Music team went and redesigned it.

Feeling stressed with a deadline but want to prevent any negativity creeping into the team, and hindering progress? Read these tips about Keeping Morale Afloat and (some of) your troubles may be over

mobile app

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • How to Submit a Post to DZone
  • DZone's Article Submission Guidelines
  • Spring Boot vs Eclipse Micro Profile: Resident Set Size (RSS) and Time to First Request (TFR) Comparative
  • Create a REST API in C# Using ChatGPT

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: