1    Architektur & Entwicklung    Mobiler Anwendungen
2    Agenda     Mobile Plattformen     Programmiersprachen und Frameworks     Cloud-Anbieter     Architektur mobiler A...
3    Architektur mobiler Anwendungen für die Cloud    («AMC»)
4    Virtual Developer Plattform
5    Mobile Plattformen
6    Source: Market study by International Data Corporation (IDC)
7
8
9    Programmiersprachen    und    Frameworks
10     Native   Hybrid   Web
11               Objective-C: iOS               Java: Android               C/C++: Android, WP8,                Bada, B...
12                        Codename One: Java                        Adobe Air Mobile:                           ActionSc...
13              HTML5, JavaScript, CSS3               Appcelerator               PhoneGap               IBM Worklight  ...
14           HTML5, JavaScript, CSS3            jQuery Mobile            jQTouch            Sencha Touch            Wi...
15           Vergleich von Frameworks für die Entwicklung           mobiler Anwendungen     http://www.markus-falk.com/mob...
16     Cloud-Anbieter
17                                                                               Benutzer                                 ...
18     Anbieter SaaS      CRM                                    Anwendungen                                             ...
19     Anbieter IaaS      Amazon Web Services (AWS)                         Anwendungen                                  ...
20     Anbieter PaaS      CloudBees: Java                                   Anwendungen                                  ...
21     Cloud Foundry      Startete als Plattform, um Spring-Applications auf       Amazon Web-Services zu betreiben     ...
22     CloudBees
23     Sonderfall Jelastic
24     Architektur -     Vorbetrachtungen
25     Always On?
26     Mobile App Besonderheiten (im Vergleich zu     Desktop)                             OS kann App und einzelne      ...
27              Architektur-Optionen - Schichten                Fat               Smart             Thin              Ultr...
28     Android-App „Time     Manager“
29
30
31          Funktionen der App     Gezeigt mit WireframeSketcher
32     Android-App „Time     Manager“     Architektur
33     Architektonische Themen in der „Time     Manager“ App      User Interface Patterns (MVC, MVP)      Application-Li...
34     Architekturthemen     USER INTERFACE PATTERNS
35     Model View Controller
36     Model View Presenter                             Supervising Controller                             Passive View
37     iOS   Traditional version of MVC as a compound pattern           Cocoa version of MVC as a compound design pattern
38     iOS – Beispiel Mediating Controller
39     iOS – Coordinating Controller                          Coordinating controller as the owner of a nib file
40             Android – MVC mit Adaptern              User event                           Adapter                       ...
41            Android - MVC   Activity                            Fragment     Widgets     Layout     Resources           ...
42                               Plain, self-made Classes   Activity                                                      ...
43     Windows 8, Windows Phone 8
44     Architekturthemen     APPLICATION LIFECYCLE
45     Android Activity/Application Lifecycle
46     Vergleich iOS/Android Lifecycles
47     Windows Phone 8 Application Lifecycle
48     Architekturthemen     INTEGRATION MIT ANDEREN     APPS
49     Mobile OS                                          App A                                       Register scheme://  ...
50     Android Standard Activity Actions                ACTION_MAIN                ACTION_VIEW                ACTION_ATTAC...
51       Android Intent Filter     <activity android:name=".MyUriActivity">       <intent-filter>          <action android...
52     Architekturthemen     LOKALE PERSISTENZ
53     SQLite mit Android                                                 Nutzung mit dem                           Contro...
54     Architekturthemen     ANBINDUNG AN REST-     SCHNITTSTELLE
55              Kommunikation und Datenformate     Client                JSON oder XML                 über HTTP(S)       ...
56        Twitter API hat XML Support eingestellt     JSON support only     API v1.1 will support JSON only. Weve been hin...
57     CRUD und REST       Aktion        Idempotent   HTTP-Verb       Create        Ja           PUT       Create        N...
58     Architekturthemen     ASYNCHRONE KOMMUNIKATION
59     HTTP = Synchrones Protokoll
60     http://www.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html
61                    Android – Pattern für REST-Implementierung     Hintergrund-       Prozess
62                    Android – Pattern für REST-Implementierung     Hintergrund-       Prozess
63                    Android – Pattern für REST-Implementierung     Hintergrund-       Prozess
64     Architekturthemen     SERVER-PUSH
65     Apple Push Notifications
66     Windows Phone Push Notifications
67              Google Cloud Messaging (GCM)                           2          Message     Client                      ...
68     WebSockets
69     WebSockets
70     Architekturthemen     EINBINDUNG VON FREMDEN     DIENSTEN
71                     Optionen                                                               My Server                   ...
72     Architekturthemen     UNIT-TESTING
73          Testbarkeit von (Business-)Logik der App                     Fragment            AdapterView            Layout...
74          Testbarkeit von (Business-)Logik der App                         Fragment               AdapterView           ...
75     Architektur     JEE Backend
76       JEE – Servlets, JAX-RS und EJB               HTTP(S)     Request                     Response       1            ...
77     Architektur mobiler Anwendungen für die Cloud     («AMC»)
78     Virtual Developer Plattform
Nächste SlideShare
Wird geladen in …5
×

Referat: Architektur und Entwicklung mobiler Anwendungen

2.282 Aufrufe

Veröffentlicht am

Marcus Munzert nennt und beschreibt die aktuell wichtigsten Plattformen und Programmiersprachen zur Entwicklung mobiler Anwendungen, als auch die aktuell wichtigsten Anbieter von Cloud-Diensten (IaaS, PaaS, SaaS). Er zeigt als Beispiel eine Android-App, die auf einen über die Cloud bereitgestellten entfernten Dienst (mit Java implementiert) zugreift.

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.282
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
81
Aktionen
Geteilt
0
Downloads
16
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Referat: Architektur und Entwicklung mobiler Anwendungen

  1. 1. 1 Architektur & Entwicklung Mobiler Anwendungen
  2. 2. 2 Agenda  Mobile Plattformen  Programmiersprachen und Frameworks  Cloud-Anbieter  Architektur mobiler Anwendungen – Vorbetrachtungen  Android-App „Time Manager“  Android-App „Time Manager“ – Architektur  User Interface Patterns  Application Lifecycle  Integration mit anderen Apps  Lokale Persistenz  Anbindung an REST Schnittstelle  Asynchrone Kommunikation  Server-Push  Einbindung von fremden Diensten  Unit-Testing  Architektur JEE Backend
  3. 3. 3 Architektur mobiler Anwendungen für die Cloud («AMC»)
  4. 4. 4 Virtual Developer Plattform
  5. 5. 5 Mobile Plattformen
  6. 6. 6 Source: Market study by International Data Corporation (IDC)
  7. 7. 7
  8. 8. 8
  9. 9. 9 Programmiersprachen und Frameworks
  10. 10. 10 Native Hybrid Web
  11. 11. 11  Objective-C: iOS  Java: Android  C/C++: Android, WP8, Bada, BB10, iOS  C#: WP8 Native
  12. 12. 12  Codename One: Java  Adobe Air Mobile: ActionScript  Mono/Monocross: C#  Corona: Lua  Qt: C++, QML  … Native, Cross-Platform/Cross-Compile
  13. 13. 13 HTML5, JavaScript, CSS3  Appcelerator  PhoneGap  IBM Worklight  RhoMobile  MobiOne  … Hybrid
  14. 14. 14 HTML5, JavaScript, CSS3  jQuery Mobile  jQTouch  Sencha Touch  Wink  Vaadin TouchKit  Qooxdoo Web  …
  15. 15. 15 Vergleich von Frameworks für die Entwicklung mobiler Anwendungen http://www.markus-falk.com/mobile-frameworks-comparison-chart/
  16. 16. 16 Cloud-Anbieter
  17. 17. 17 Benutzer Internet Anwendungen Software as a Service Middleware App-Server Plattform as a Service … Server Hardware Infrastructure as a Service
  18. 18. 18 Anbieter SaaS  CRM Anwendungen Software as a Service  Salesforce Middleware App-Server Plattform as a Service  Oracle …  Microsoft Server Infrastructure as a Service Hardware  SugarCRM  Shopsysteme  1&1  Strato  Hosteurope  Magento  ...
  19. 19. 19 Anbieter IaaS  Amazon Web Services (AWS) Anwendungen Software as a Service  EC2 Middleware App-Server … Plattform as a Service  S3, Glacier, EBS, RDS, DynamoDB Server Hardware Infrastructure as a Service  Windows Azure  Google Cloud Platform  Computing Engine  Cloud Storage  … viele, viele andere Anbieter von virtuellen und dedicated Servern
  20. 20. 20 Anbieter PaaS  CloudBees: Java Anwendungen Software as a Service  Force.com: Apex Middleware App-Server … Plattform as a Service  Google App Engine: Java, Python Server Infrastructure as a Service Hardware  Windows Azure: .NET  Red Hat OpenShift: Java  Amazon Elastic Beanstalk: PHP, Python, Ruby, .NET und Java  Cloud Foundry (BETA): Java, Scala, Node.js und Ruby  Heroku: Ruby, Node.js, Clojure, Java, Python und Scala  Jelastic: Java und PHP …
  21. 21. 21 Cloud Foundry  Startete als Plattform, um Spring-Applications auf Amazon Web-Services zu betreiben  2011: VMware kauft Cloud Foundry  Cloud Foundry kann auf verschiedensten Cloud- Infrastrukturen betrieben werden, sogar auf dem eigenen Computer/Notebook  Ist zurzeit in Public BETA
  22. 22. 22 CloudBees
  23. 23. 23 Sonderfall Jelastic
  24. 24. 24 Architektur - Vorbetrachtungen
  25. 25. 25 Always On?
  26. 26. 26 Mobile App Besonderheiten (im Vergleich zu Desktop)  OS kann App und einzelne Aktivitäten  Pausieren  Beenden  Fortsetzen  Neu Starten  Bestimmte Aktivitäten erscheinen dem OS wichtiger als die Anderen  Aktivitäten die benutzt werden  Aktivitäten die sichtbar sind  Daten die nicht auf Gerät persistiert sind, können jederzeit verloren gehen  Es gibt für den Benutzer keine „Beende App“ Funktion  Offline-Fähigkeit einer App ist
  27. 27. 27 Architektur-Optionen - Schichten Fat Smart Thin Ultra Thin Client Presentation Presentation Presentation Presentation Logic Engine Logic Logic Data Data Data Business Business Logic Logic Cloud/Server Presentation Presentation Logic Logic Business Business Business Logic Logic Logic Data Data Data Data
  28. 28. 28 Android-App „Time Manager“
  29. 29. 29
  30. 30. 30
  31. 31. 31 Funktionen der App Gezeigt mit WireframeSketcher
  32. 32. 32 Android-App „Time Manager“ Architektur
  33. 33. 33 Architektonische Themen in der „Time Manager“ App  User Interface Patterns (MVC, MVP)  Application-Lifecycle  Integration mit anderen Apps, die auf dem mobilen Gerät laufen (über URI Schemata)  Lokale Persistenz (SQLite)  Anbindung an eigene, entfernte REST Schnittstelle (JAX-RS, JEE)  Asynchrone Kommunikation mit Server (über Hintergrundprozesse auf moilbem Gerät)  Server-Push (Google Cloud Messaging, WebSockets)  Einbindung von fremden, entfernten Diensten  In der App (Google Maps, DropBox)  Auf dem Server (DropBox)  Unit-Testing
  34. 34. 34 Architekturthemen USER INTERFACE PATTERNS
  35. 35. 35 Model View Controller
  36. 36. 36 Model View Presenter  Supervising Controller  Passive View
  37. 37. 37 iOS Traditional version of MVC as a compound pattern Cocoa version of MVC as a compound design pattern
  38. 38. 38 iOS – Beispiel Mediating Controller
  39. 39. 39 iOS – Coordinating Controller Coordinating controller as the owner of a nib file
  40. 40. 40 Android – MVC mit Adaptern User event Adapter update read write AdapterView Model Array Cursor …
  41. 41. 41 Android - MVC Activity Fragment Widgets Layout Resources Entities ContentProvider
  42. 42. 42 Plain, self-made Classes Activity Fragment Android - MVP Widgets Layout Resources Entities ContentProvider
  43. 43. 43 Windows 8, Windows Phone 8
  44. 44. 44 Architekturthemen APPLICATION LIFECYCLE
  45. 45. 45 Android Activity/Application Lifecycle
  46. 46. 46 Vergleich iOS/Android Lifecycles
  47. 47. 47 Windows Phone 8 Application Lifecycle
  48. 48. 48 Architekturthemen INTEGRATION MIT ANDEREN APPS
  49. 49. 49 Mobile OS App A Register scheme:// scheme://some/value MyApp App B Register scheme:// App C Register scheme://
  50. 50. 50 Android Standard Activity Actions ACTION_MAIN ACTION_VIEW ACTION_ATTACH_DATA ACTION_EDIT ACTION_PICK ACTION_CHOOSER ACTION_GET_CONTENT ACTION_DIAL ACTION_CALL ACTION_SEND ACTION_SENDTO ACTION_ANSWER ACTION_INSERT ACTION_DELETE ACTION_RUN ACTION_SYNC ACTION_PICK_ACTIVITY ACTION_SEARCH ACTION_WEB_SEARCH ACTION_FACTORY_TEST
  51. 51. 51 Android Intent Filter <activity android:name=".MyUriActivity"> <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="myapp" android:host="path" /> </intent-filter> </activity>
  52. 52. 52 Architekturthemen LOKALE PERSISTENZ
  53. 53. 53 SQLite mit Android Nutzung mit dem Controller Android Loader Framework (Activity, Fragment, Presenter) ContentProvider SQLiteOpenHelper SQLite
  54. 54. 54 Architekturthemen ANBINDUNG AN REST- SCHNITTSTELLE
  55. 55. 55 Kommunikation und Datenformate Client JSON oder XML über HTTP(S) Server Server Server
  56. 56. 56 Twitter API hat XML Support eingestellt JSON support only API v1.1 will support JSON only. Weve been hinting at this for some time now, first dropping XML support on the Streaming API and more recently on the trends API. Weve chosen to throw our support behind the JSON format shared across the platform. Consequently, weve decided to discontinue support for XML, Atom, and RSS, which are infrequently used today. For historical context, when we originally built the API all major languages did not have performant, well vetted libraries supporting JSON — today they do.
  57. 57. 57 CRUD und REST Aktion Idempotent HTTP-Verb Create Ja PUT Create Nein POST Read GET Update Ja PUT Update Nein POST Delete DELETE
  58. 58. 58 Architekturthemen ASYNCHRONE KOMMUNIKATION
  59. 59. 59 HTTP = Synchrones Protokoll
  60. 60. 60 http://www.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html
  61. 61. 61 Android – Pattern für REST-Implementierung Hintergrund- Prozess
  62. 62. 62 Android – Pattern für REST-Implementierung Hintergrund- Prozess
  63. 63. 63 Android – Pattern für REST-Implementierung Hintergrund- Prozess
  64. 64. 64 Architekturthemen SERVER-PUSH
  65. 65. 65 Apple Push Notifications
  66. 66. 66 Windows Phone Push Notifications
  67. 67. 67 Google Cloud Messaging (GCM) 2 Message Client 1 2 regId 1 regId Message Server 3 regId Message Registration 4 regId Registration Handler Handler 3 Message 4 5 regId <-> username Handler
  68. 68. 68 WebSockets
  69. 69. 69 WebSockets
  70. 70. 70 Architekturthemen EINBINDUNG VON FREMDEN DIENSTEN
  71. 71. 71 Optionen My Server REST-API My App Credentials sind auf Credentials sind auf Gerät hinterlegt Server hinterlegt - ODER - - ODER – OAuth2 OAuth2 Lokale Integration z.B. Google Maps API 3rd Party App REST-API 3rd Party Server z.B. DropBox
  72. 72. 72 Architekturthemen UNIT-TESTING
  73. 73. 73 Testbarkeit von (Business-)Logik der App Fragment AdapterView Layout Widget Adapter ContentProvider UnitTest Activity Service AsyncTask
  74. 74. 74 Testbarkeit von (Business-)Logik der App Fragment AdapterView Layout Widget Adapter Activity ContentProvider Interface Service UnitTest Presenter AsyncTask
  75. 75. 75 Architektur JEE Backend
  76. 76. 76 JEE – Servlets, JAX-RS und EJB HTTP(S) Request Response 1 6 EJB-Container Stateless Session Bean Jersey REST-Servlet JAX-RS Stateless Session Bean Resource Stateless Session Bean 2 Resource 3 Stateless Session Bean 4 Resource Web-Container Entity Manager Application Server 5 DB
  77. 77. 77 Architektur mobiler Anwendungen für die Cloud («AMC»)
  78. 78. 78 Virtual Developer Plattform

×