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

Technologies to develop mobile apps

Technologies to develop mobile apps

Common challenges faced during app development and Recommendations when choosing an approach to build a mobile app

Erik Jhordan Rey

July 04, 2020
Tweet

More Decks by Erik Jhordan Rey

Other Decks in Programming

Transcript

  1. Common challenges faced during app development Build Android and iOS

    Reach & Retention Development Time Accessibility UI/UX & Performance Developers hiring and costs Time to market, iterations Quality and Perform design
  2. • Web App Development • Hybrid App Development • Cross-platform

    App Development • Native App Development Mobile App Development
  3. Progressive Web Apps web applications that have been designed so

    they are capable, reliable, and installable. (experience feels like a native application.)
  4. • Default launch icon (android) • Works offline, provides GPS

    access, push notifications (android) • UX is significantly optimized Pros and Cons • Slower performance • Limited access to iOS resources • Can’t Download on the stores
  5. If you already have a website and want to add

    a little more functionality to offer users a “similar” experience to a native app
  6. • Lower development costs • Will operate on different platforms.

    • Single codebase • Download on the stores Pros and Cons • Slower performance • Limited access to OS resources • Limited interaction with other native OS • Highly dependent on libraries and frameworks • Ugly user experience • Apple can reject the app
  7. If you're a web developer and needs to build a

    mobile application, this option will probably work in cases where you want to use the tech stack that you already know
  8. Cross-Platform Apps Uses a native rendering engine. The codebase written

    in another language connects to native components via the so-called bridges.
  9. Xamarin Powered by Microsoft Xamarin allows you to create native

    UI on each platform and write business logic in C# that is shared across platforms. • Xamarin.Essentials provides developers with cross-platform APIs for their mobile applications. • Use Xamarin.Forms built in pages, layouts, and controls to build and design mobile apps from a single API.
  10. React Native Powered by Facebook React Native combines the best

    parts of native development with React, a best-in-class JavaScript library for building user interfaces. • You can use React Native today in your existing Android and iOS projects or you can create a whole new app from scratch. • Hot Reloading • Allows you to reuse the codebase between iOS and Android. • React Native has been adopted by many, with better or worse results.
  11. Flutter Powered by Google Google’s UI toolkit for building beautiful,

    natively compiled applications for mobile, web, and desktop from a single codebase. • Same UI and business logic in all platforms • Stateful Hot Reload • Ability to customize anything you see on the screen, regardless of how complex it • Flutter’s Skia engine and its ability to quickly create and dispose of widgets, Flutter applications are performant
  12. Kotlin Cross Mobile Platform Powered by intellij Write the business

    logic for your iOS and Android apps with less time and effort using Kotlin • Smooth interoperability with platform-specific code • Kotlin does not impose any restrictions on how you develop your app’s UI. • Recommend for android or kotlin developers
  13. • Lower development costs • Will operate on different platforms.

    • UI performance is almost as fast as native • Cost-effective development • Single codebase • Download on the stores Pros and Cons • Slower performance • Limited access to OS resources (not as limited as for hybrid) • Highly dependent on libraries and frameworks • Delayed to update to latest native APIs
  14. Native Apps The natural way to develop mobile applications. It

    is the one in which we use the languages and technologies offered by the operating system
  15. iOS Apple Cocoa Touch is the application development environment for

    building software programs to run on iOS for the iPhone and iPod Touch, iPadOS for the iPad, watchOS for the Apple Watch, and tvOS. • Swift • Great documentation
  16. Swift UI Innovative, exceptionally simple way to build user interfaces

    across all Apple platforms with the power of Swift.
  17. Android Google • Jetpack • Kotlin • Better documentation •

    Guide to app architecture • Great Resources (Videos, Blog Posts, Conferences)
  18. Jetpack Compose Jetpack Compose simplifies and accelerates UI development on

    Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
  19. • Access to all native APIs • Full access to

    the device’s OS • Great Performance • High-quality UX • Happy native mobile developers • Download on the stores Pros and Cons • No base code reuse • High dev costs if different OS • ¿Time to market?
  20. You want to avoid experimental technology usages and you have

    the resources to go safely. Native dev approach is definitely the right way without magic
  21. Recommendations • Understand the project to be developed and the

    scope • Choose the one that allows you to advance faster and helps to achieve the objectives and expectations of the business with the resources you have • Make an assessment of what languages and technologies are mastered by team members and the experiences they have. • Look for similar applications in the industry and research what technologies they are using, can help you verify or question your decision • Analyze the budget you have, and the number of developers you can hire • Choose one that allows you to learn and improve the development experience
  22. Further Reading • https://open.spotify.com/episode/11BV1M5dWUly3ny0KoMJwk • https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c • https://flutter.dev • https://developer.android.com/

    • https://developer.apple.com/ios/ • https://touchlab.co/ • https://reactnative.dev/ • https://developer.android.com/jetpack/compose • https://www.jetbrains.com/lp/mobilecrossplatform/