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

9f523401a845a29c93ff73cde4c3db2b?s=128

Erik Jhordan Rey

July 04, 2020
Tweet

Transcript

  1. Erik Jhordan Rey GDE Android @ErikJhordan_Rey Technologies to develop mobile

    apps
  2. Mobile Development Challenges

  3. 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
  4. Approaches to mobile development

  5. • Web App Development • Hybrid App Development • Cross-platform

    App Development • Native App Development Mobile App Development
  6. Web App Development

  7. Responsive Application A version of the website adapted to any

    mobile resolution.
  8. Progressive Web Apps web applications that have been designed so

    they are capable, reliable, and installable. (experience feels like a native application.)
  9. None
  10. Tools Tools to d

  11. • 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
  12. If you already have a website and want to add

    a little more functionality to offer users a “similar” experience to a native app
  13. Hybrid App Development

  14. Hybrid Apps Hybrid apps blend web elements with mobile ones

  15. None
  16. Tools

  17. • 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
  18. 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
  19. Cross-platform App Development

  20. Cross-Platform Apps Uses a native rendering engine. The codebase written

    in another language connects to native components via the so-called bridges.
  21. (Adopt Flutter)

  22. 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.
  23. 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.
  24. 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
  25. 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
  26. • 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
  27. Native Development

  28. 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
  29. None
  30. 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
  31. Swift UI Innovative, exceptionally simple way to build user interfaces

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

    Guide to app architecture • Great Resources (Videos, Blog Posts, Conferences)
  33. 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.
  34. • 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?
  35. 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
  36. Recommendations when choosing an approach to build a mobile app

  37. 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
  38. Further reading

  39. 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/
  40. Erik Jhordan Rey GDE Android @ErikJhordan_Rey Thank You!