Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Key learnings and pitfalls from building mobile SDK

Key learnings and pitfalls from building mobile SDK

Are you working on the client library? Or design a public API for the module that is going to be used by other team or department?

In this session, Vitality will share his experience and key learnings from building a set of mobile SDKs. The session will be interesting for Android and iOS developers who want to learn what makes client library great. What are the best practices and common pitfalls in public API design. What is important, only programming API you expose or also ecosystem around?

Vitaliy Zasadnyy

February 16, 2017
Tweet

More Decks by Vitaliy Zasadnyy

Other Decks in Technology

Transcript

  1. @zasadnyy Or what did we learn in the last 4

    years Building mobile SDK Vitaliy Zasadnyy Head of Mobile @ GetSocial
  2. @zasadnyy Cost of fixing issue Spend 10x more time on

    line of examples comparing to production code
  3. @zasadnyy GetSocial Analytics problem Almost all our clients mis-integrate analytics

    <receiver android:name="im.getsocial.InstallReferrerReceiver"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER"/> </intent-filter> </receiver>
  4. @zasadnyy Keep compatibility Select minimum supported platform version. After detailed

    market research Update maximum supported version. Continuously
  5. @zasadnyy Solving integration time problems Easy way to get SDK

    version Debug SDK configuration Unique log tag Actionable errors
  6. @zasadnyy Solving end-user side problems private void trackError(GetSocialException exception) {

    ... AnalyticsTrackManager.trackAnalyticsEvent( AnalyticsEventDetails.Name.SDK_ERROR, eventProperties); }
  7. @zasadnyy Backward compatibility Use @Deprecation cycle /** * @deprecated use

    {@link #getAllIdentities()} instead. * Method will be removed in SDK v5.0.0. */ @Deprecated public List<String> getIdentities() { ... }
  8. @zasadnyy Develop 1 Integrate 2 Support 3 Update 4 Not

    sure? Drop it! Never crash Be your own customer Think ahead Smooth
  9. @zasadnyy API can be you biggest asset of liability -

    Joshua Bloch Put yourself in your customer’s shoes - Cesare Rocchi