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

Cross-Platform app development

Cross-Platform app development

Cross-Platform frameworks and approach of building apps.
GDG meetup Szczecin.

Michal Mikolajewski

February 11, 2020
Tweet

Other Decks in Programming

Transcript

  1. “Given the exponential increase in the cost of per platform

    development and the need for rapid time to market, cross-platform development is the way to go for the enterprise” - Gautam Agrawal, Sencha senior director of product management
  2. Changing nature of technology Both native and cross-platform app development

    technologies are in constant state of evolution. App creators must revisit their work from time to time. Native app development focuses on generating a competent design that stays close to the target platform–Android, iOS, etc. Cross-platform frameworks puts focus on reaching as many users as possible by covering a wide number of end devices during the programming and creation process. Progressive Web Application, web apps can do the job of a mobile app.
  3. Top Cross-Platform App Frameworks • React-Native - JavaScript • Flutter

    - Dart • Adobe PhoneGap (Apache Cordova) - JavaScript • Xamarin - .Net • Sencha - JavaScript • Unity3D - .Net
  4. Cross-Platform approach allows to build apps for different platforms •

    Single codebase • Limited cost • Device Access • Performance • UI Consistency • MVP (Minimum Viable Product)
  5. Code Reusability Ease of code reusability is one of the

    biggest upsides that cross-platform frameworks offer. A single code can be used for multiple platforms. But!
  6. Cost-Effectiveness Since the code is written once and used for

    multiple platforms, it offers a relatively lower cost of development. But!
  7. Performance - that depends Cross-platform frameworks offer decent performance. React

    Native or Flutter in some cases are just slightly slower then Native Android app. Applications that are using native features and APIs provided by the platform can be coded much more easily using native languages.
  8. Consistency in UI Components Cross-platform frameworks offer a extent of

    consistency in UI components. Uniform look and feel. But!
  9. Price & time An MVP helps check the viability of

    the product before launch and make adjustments and enhancements as required. For start-ups especially achieving success is essential, which means deep research for their core idea and the key solution is required. • Reduce development costs • Evaluate project/idea • Collect feedback from intended users • Engage potential investors
  10. Cross-platform advantages • Good performance even in case of complex

    UI • Does not require extensive lines of code • Single codebase for cross-platform development • Short development cycle and simplified app development process • Extensive libraries for Firebase for building a solid backend for an MVP • Excellent developer community for easier big fixes and reusable components • Does not require heavy licensing costs for MVP development
  11. Compare simple API use in RN and Java Many common

    problems can be resolved faster and more sufficient using cross-platform available solutions and open source libs. Same functionality can be achieved with less effort.
  12. <MapboxGL.ShapeSource id="earthquakes" cluster clusterRadius={50} clusterMaxZoom={14} url="https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_week.geojson"> <MapboxGL.SymbolLayer id="pointCount" style={layerStyles.clusterCount}/> <MapboxGL.CircleLayer

    id="clusteredPoints" belowLayerID="pointCount" filter={['has', 'point_count']} style={layerStyles.clusteredPoints}/> <MapboxGL.CircleLayer id="singlePoint" filter={['!', ['has', 'point_count']]} style={layerStyles.singlePoint}/> </MapboxGL.ShapeSource> </MapboxGL.MapView> Single code base for Android and iOS
  13. Cross-platform app development is not all fun and games •

    Possible lower performance • Harder code design • Inferior UX and UI • Lower interest of mobile developers • Frequent changes to framework • Long wait time for new features and components update