Small calvinfrenchowen Calvin French-Owen on

Data is critical to building great apps. Engineers and analysts can understand how customers interact with their brand at any time of the day, from any place they go, from any device they're using - and use that information to build a product they love. But there are countless ways to track, manage, transform, and analyze that data. And when companies are also trying to understand experiences across devices and the effect of mobile marketing campaigns, data engineering can be even trickier. What’s the right way to use data to help customers better engage with your app?

In this all-star panel hear from mobile experts at Instacart, Branch Metrics, Pandora, Invoice2Go, Gametime and Segment on the best practices they use for tracking mobile data and powering their analytics.

Continue

Unknown author on

I am an android developer for iHeartRadio, and my job here is building a beautiful android application for iHeartRadio, which serves millions of android users.

Maintaining a 4.5 star rating is very, very challenging—to do so, your application must have rich contents that users can enjoy, be easy to use, and performant.

As a developer, one of my main focuses is building crash free apps. On a daily basis, I monitor and fix various kinds of application crashes, which can come from hardware limitations as we deal with multiple manufacturers, OS platform level, or developer’s own mistakes. One common class of error causes null pointer exceptions, which is familiar to any experienced java developer.

We spend a lot of effort writing clean code, expanding unit test coverage and performing peer code reviews. Still, it’s not easy to eliminate all null pointer exceptions, as the causes for them are many. They can happen during runtime when the platform API returns a null object, any server response may result in null pointer error, or the developer may simply forget to do null object check in their own code.

You may have written this to avoid null pointer exceptions. So have we!

Screen Shot 2015-08-18 at 11.38.14 AM

The above code is very defensive and prevents null pointer error.

Continue

Unknown author on

iHeartRadio for Mac was just released in Mac App Store.

We’ve made this product from scratch in two months(-ish). I hate to blow my own trumpet but it was quite quick work. The key is reusing iOS code in the OS X app. I’m going to share how we did it in this post.

Step 1: Know availability of frameworks on OS X

The first step is to understand which frameworks are avilable on OS X. For example, we can use Foundation on OS X while UIKit is not available at all.

I wrote a simple web page to see which of Apple’s frameworks are available both on iOS and OS X.

You also need to know which pods are available on OS X if you’re using Cocoapods. For example, our iOS app is highly dependent upon AFNetworking and SDWebImage, however SDWebImage doesn’t support OS X(yet).
You can check availability in the pod spec file. If you see both ios.deplyoment_target and osx.deployment_target, that pod is available on both iOS and OS X.

//AFNetworking.podspec
s.ios.deployment_target = ‘6.0’
s.osx.deployment_target = '10.8’

If these frameworks required to produce your app’s core value can be used on OS X, it might be worth to consider making OS X app from your iOS code and go ahead to the second step. In our case, the most important framework is AVFoundation. And it is fully available on OS X.

Continue

Small 1331900 Andrew Copp on

Authentication is often an afterthought when developing apps. It is a step users will need to complete just once before moving on to the actual features of your product. Hinge’s iOS client was a complicated state machine for a long time. There are a number of paths the user can take and we had zero test cases to ensure we were handling all of them. The mentality was very much, “if it ain’t broke, don’t fix it.”

Our outlook changed when Facebook announced their plans to deprecate v1.0 of the Graph API. We were going to have to update the Facebook SDK and replace many of the classes and methods throughout the app. We took this as an opportunity to revisit the architecture of our authentication process.

Facebook encourages the use of the Singleton Pattern and this had been abused in our code. Our Facebook object had a massive API which led to muddled responsibilities and hidden dependencies. It was confusing to know where in the authentication process a user was in at any given time. Lots of potential steps in the flow were overlooked.
Continue

Small 863698 Matthew Reilly on

Experiments with Google Play Services

Screen Shot 2015-05-11 at 12.15.18 PM


“I can’t register!” “Your app isn’t available in New York City??!!”


Comments like these (some more vocal than others) began pouring in immediately after we ramped up our staged rollout to Google Play. Hinge is, in fact, available in New York City (our hometown!) Clearly something was amiss.

Continue

Unknown author on

The Android platform consists of a huge amount of code. With so much code, it is not uncommon that bugs and unexpected behavior occurs. In this talk, Erik Hellman explains some of the more interesting bugs and API behaviors that are present and how to deal with them. From subtle UI glitches, concurrency issues, the 64k method limit and more, this session will save you lots of time once you run into these bugs.

Code samples here.

This video was recorded at the New York Android Developers meetup at Spotify in NYC.

Continue
Small geo Geo Grigoryan on

Clojure Programmer Geo Grigoryan talks about building mobile apps with ClojureScript and Cordova. Corodova allows you to write your user interface in HTML/Javascript and gives you access to hardware functionality via its plugin system.

In this talk, he'll cover the basic architecture, setup, and lessons he's learned while developing these apps.

39:31

This talk was given at the NYC Clojure Users Group hosted by Two Sigma Investments in NYC.

Continue

Small philsarin Phil Sarin on

To increase speed, reduce cost, and reduce risk, GameChanger began continuous pre-production delivery of its iOS App nearly two years ago. Watch as Phil Sarin (VP, Engineering at GameChanger) review early mistakes and the specific culture and process changes that lead to wins for GameChanger.

48:58

Continue

Small member 15583311 Marc Schwartz on


In this talk, we hear from Marc Schwartz about mobile app development in Clojure. First, we'll hear about the Clojure mobile development landscape. Then, we'll dive into details about Marc's new platform, which solves the slow development cycle that hampered earlier approaches. This talk was recorded at the NYC Clojure Users Group meetup at Two Sigma Investments.

51:08

Continue

Join Us