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

A journey into React Native development 🌴

A journey into React Native development 🌴

Summing up 2+ years of learnings from my journey into the React Native jungle. How to get started? What to be aware of? Lessons learned and battles fought.

Kenneth Skovhus

May 25, 2019
Tweet

More Decks by Kenneth Skovhus

Other Decks in Programming

Transcript

  1. @KENNETH_SKOVHUS A JOURNEY INTO REACT NATIVE DEVELOPMENT LESSONS LEARNED &

    BATTLES FOUGHT @KENNETH_SKOVHUS REACT MEETUP AT LEO INNOVATION LAB MAY 2019
  2. @KENNETH_SKOVHUS SINGLE PLATFORM MOBILE APP ARCHITECTURE ANDROID ANDROID SDK IOS

    IOS SDK YOUR APP CODE (KOTLIN) YOUR CODE APP (SWIFT)
  3. @KENNETH_SKOVHUS REACT NATIVE ARCHITECTURE ANDROID ANDROID SDK RN RUNTIME AND

    GLUE REACT NATIVE JAVASCRIPT API IOS IOS SDK RN RUNTIME AND GLUE YOUR APP CODE (TRANSPILED TO JAVASCRIPT)
  4. @KENNETH_SKOVHUS PLATFORM PLATFORM UI REACT NATIVE GLUE YOUR APPLICATION (JS)

    REACT NATIVE FACEBOOK FLUTTER GOOGLE PLATFORM YOUR APPLICATION (DART) FLUTTER ENGINE (C++) FLUTTER PLATFORM UI CROSS-PLATFORM FRAMEWORKS WITH NATIVE LOOK AND FEEL XAMARIN MICROSOFT PLATFORM YOUR APPLICATION (C#) PLATFORM UI XAMARIN BACKEND
  5. @KENNETH_SKOVHUS BUT, YOU CANNOT USE EXPO IF USE UNSUPPORTED NATIVE

    MODULES (EXPO SHIPS WITH AN SDK) YOU HAVE SPECIFIC NATIVE REQUIREMENTS OR USING LOWER LEVEL FEATURES
  6. @KENNETH_SKOVHUS REACT NATIVE STYLESHEETS WITH FLEX LAYOUT SUPPORT IS A

    FAMILIAR AND GREAT ABSTRACTION FOR BUILDING UIS
  7. @KENNETH_SKOVHUS MOBILE DEVELOPMENT IS A DIFFERENT BEAST! YOU MIGHT STILL

    NEED NATIVE DEVELOPMENT / DEVELOPERS FOR INTERESTING FEATURES
  8. @KENNETH_SKOVHUS MOBILE DEVELOPMENT IS A DIFFERENT BEAST! THIRD PARTY DEPENDENCIES

    WITH NATIVE FEATURES, MIGHT NOT BE MAINTAINED BY EXPERIENCED NATIVE DEVELOPERS
  9. @KENNETH_SKOVHUS MOBILE DEVELOPMENT IS A DIFFERENT BEAST! DEPLOYMENT PAINS (MOSTLY

    IOS) APP STORE REVIEWS AND MANUAL STEPS FASTLANE.TOOLS RELIEVES SOME OF THE PAIN
  10. @KENNETH_SKOVHUS USERS NOT (EVER) UPDATING YOUR APP % FOCUS ON

    CODE QUALITY & TESTS % AVOID BREAKING BACKEND CHANGES % HAVE DEDICATED MOBILE ENDPOINTS
  11. @KENNETH_SKOVHUS USERS NOT (EVER) UPDATING YOUR APP % IMPLEMENT PROMPT

    / NUDGE SCREEN TO INFORM USERS ABOUT REQUIRED UPDATES OR
  12. @KENNETH_SKOVHUS TYPES AS A SAFETY NET REACT-NATIVE IS WRITTEN IN

    FLOW WE MIGRATED TO TYPESCRIPT DUE TO THE DEVELOPER TOOLING AND HAVEN’T LOOKED BACK
  13. @KENNETH_SKOVHUS CHOOSING A NAVIGATION LIBRARY REACT-NATIVE-NAVIGATION (BUILD ON NATIVE NAVIGATION

    CONTROLLER) REACT-NAVIGATION (REVERSE ENGINEERED LOOK AND FEEL USING RN)
  14. @KENNETH_SKOVHUS AUTOMATED END TO END DEVICE TESTING DETOX ☀ (GREY

    BOX TESTING) APPIUM (CAN RUN ON AMAZON DEVICE FARM)
  15. @KENNETH_SKOVHUS “BUILD AN EDITORIAL CONTENT SECTION THAT NON-CODERS CAN UPDATE

    (POSSIBLY REMOTELY), BUT ENFORCE DESIGN CONSISTENCY (I.E. NOT USING A WEB VIEW)”
  16. @KENNETH_SKOVHUS Seeing you installed this app, you are probably interested

    in getting a better understanding of your skin condition. Here are some of the ways in which other people have used this app to get on top of their condition. ## 1. Track the effectiveness of a new treatment When you’re on a new treatment, you want to make sure it’s working for you. Small week-to-week changes can be hard to notice, but that’s where the app’s clever comparison view comes in handy: ![Comparison view](${getLocalImageMarkdown( require(‘./images/BenefitsComparisonView.jpg') )}) In the words of Jennifer (32), who’s been using Imagine: > It makes me happy to see the progress, because applying all this cream is time-consuming and annoying! ## 2. Show your doctor what happened Even if you see a doctor regularly, they don’t see how you are doing between visits. Maybe it was much worse a month ago and it feels like you are always seeing the doctor when your skin is doing fine?
  17. @KENNETH_SKOVHUS UPGRADING A NON-EXPO REACT NATIVE PROJECT CAN BE PAINFUL...

    NCUILLERY / RN-DIFF STABILITY & LESS FRUSTRATION: STAY ONE VERSION BEHIND.
  18. @KENNETH_SKOVHUS A JOURNEY INTO REACT NATIVE DEVELOPMENT LESSONS LEARNED &

    BATTLES FOUGHT @KENNETH_SKOVHUS REACT MEETUP AT LEO INNOVATION LAB MAY 2019