How not to fuckup with building mobile SDK and make clients happy (DevFest Prague)

How not to fuckup with building mobile SDK and make clients happy (DevFest Prague)

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 mobile SDKs for last 4 years.

F456ed67b75e58e533d11b301f5f62b5?s=128

Vitaliy Zasadnyy

November 04, 2017
Tweet

Transcript

  1. 1.

    @zasadnyy With building the mobile SDK How not to Fuck

    Up Vitaliy Zasadnyy Head of Mobile @ GetSocial
  2. 4.
  3. 5.
  4. 6.
  5. 12.
  6. 13.
  7. 14.

    <receiver android:name="im.getsocial.InstallReferrerReceiver"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER"/> </intent-filter> </receiver> <provider android:name="im.getsocial.sdk.invites.ImageContentProvider" <meta-data

    android:name="im.getsocial.sdk.AppId" android:value="LuDPp7W0J4"/> <activity android:name="com.demo.GetSocialDeepLinkingActivity"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="https" android:host="demo.gsc.im"/> <data android:scheme="getsocial" android:host="LuDPp7W0J4"/> </intent-filter> </activity> GetSocial.init()
  8. 15.

    <receiver android:name="im.getsocial.InstallReferrerReceiver"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER"/> </intent-filter> </receiver> <provider android:name="im.getsocial.sdk.invites.ImageContentProvider" <meta-data

    android:name="im.getsocial.sdk.AppId" android:value="LuDPp7W0J4"/> <activity android:name="com.demo.GetSocialDeepLinkingActivity"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="https" android:host="demo.gsc.im"/> <data android:scheme="getsocial" android:host="LuDPp7W0J4"/> </intent-filter> </activity>
  9. 29.
  10. 35.
  11. 46.
  12. 47.
  13. 48.
  14. 56.
  15. 59.
  16. 67.

    @zasadnyy Solving end-user side problems void trackError(GetSocialException exception) { ...

    AnalyticsTrackManager.trackAnalyticsEvent( AnalyticsEventDetails.Name.SDK_ERROR, eventProperties); }
  17. 68.
  18. 69.
  19. 71.
  20. 74.
  21. 76.

    @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() { ... }
  22. 81.
  23. 82.
  24. 86.

    @zasadnyy API can be you biggest asset of liability -

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