Android vs iOS

download Android vs iOS

of 25

  • date post

    13-Aug-2015
  • Category

    Mobile

  • view

    116
  • download

    1

Embed Size (px)

Transcript of Android vs iOS

  1. 1. Android vs iOS Domenico Gabriele Android Developer Francesco Gambino iOS Specialist
  2. 2. Francesco Gambino Dottore Magistrale in Informatica (Unical) iOS & Mobile Specialist 6 anni di esperienza nella progettazione e sviluppo di applicazioni mobile ad alte prestazioni con lintegrazione delle tecnologie pi avanzate (Location tracking, Realt Aumentata, Face Detection), programmazione di sensori e realizzazione di interfacce custom con grande attenzione allusabilit. Domenico Gabriele Laurea in Informatrica (Unical) Java & Android Developer 3 Anni di esperienza in Android 3 Anni di esperienza di sviluppo in applicazioni Web java based Chi siamo
  3. 3. Android Nexus 5, 6, 9 Galaxy S 5, 6, 4 screen size 6 screen densities (mdpi, hdpi, xhdpi, ) Lollipop, ICS, Jelly Bean e ALTRO iOS iPhone, iPad, iPod 3 screen densities (@1x, @2x, @3x) iOS 8, 7 e STOP
  4. 4. Strumenti Android Android Studio Android JAVA/ C++ ART/ Dalvik Emulatore Lifecycle Activity iOS Xcode Objective-C / Swift Cocoa Touch (Foundation Kit, UIKit) Automatic Reference Counting (ARC) Simulatore Model-View-Controller (MVC)
  5. 5. Android string = string.replace("to", "xyz"); iOS [string stringByReplacingOccurrencesOfString:@"to" withString:@"xyz" options:0 range:NSMakeRange(0, string.length)];
  6. 6. Activity Una Activity rappresenta una possibile interazione dellutente con lapplicazione e pu essere associata al concetto di schermata. Essa si occupa di creare la finestra nel quale pu essere associata lUI ma non strettamente legata ad essa. Importanza fondamendale il Lifecycle di unActivity
  7. 7. Lifecycle activity
  8. 8. Model-View-Controller
  9. 9. lunit fondamentale per lo sviluppo di una app iOS Interagisce con i Model e altri Controller per presentare una UI coerente strettamente associato ad una view, che gestisce durante il suo ciclo di vita carica, effettua il layout e il resize si occupa di aggiornare il contenuto intercetta gli eventi UIViewController
  10. 10. App lifecycle e ViewController lifecycle
  11. 11. View e Layout In Android la definizione della user interface si basa tutta sul concetto di View e ViewGroup View : Questa classe rappresenta l'elemento fondamentale per i componenti dell'interfaccia utente. TUTTI gli elementi grafici ereditano da essa. TextView , Button, EditText ViewGroup: Una speciale View che pu contenere altre view . Questa la classe base di tutti i layout. LinearLayout,RelativeLayout,ListView LinearLayout RelativeLayout ListView
  12. 12. UI realizzata tramite Interface Builder XIB vs Storyboard Composizione tramite drag&drop Specifica del layout tramite Autolayout definizione di vincoli tra gli elementi grafici (~ Relative Layout Android) UI dinamica che si adatta a diverse dimensioni dello schermo, orientamento e localizzazione View e layout
  13. 13. Relative layout vs Autolayout
  14. 14. Esempio di Layout iOS referenziare il vincolo di interesse manipolarlo manualmente in maniera da ottenere il risultato desiderato priceViewTop = -priceView.height; [self.view layoutIfNeeded]; Android view.setVisibility(View.GONE); Include : Si possono includere Layout in altri tramite include
  15. 15. Aperto Chiuso
  16. 16. Comunicazione inter-app Le app sul dispositivo possono comunicare tra loro solo in maniera indiretta -> SANDBOX URL Schemes la app registra un URL custom attraverso lURL altre app possono aprire la app la app originale pu presentare i dati contenuti nellURL API per laccesso alle app di sistema: camera, telefono, contatti, mappe, calendario, salute, passbook, etc. Extensions (>= iOS 8) danno accesso a funzionalit e contenuti di altre applicazioni Implicit Intent : Uri number = Uri.parse("tel:5551234"); Intent callIntent = new Intent(Intent.ACTION_DIAL, number); StartActivityForResult(Intent, RequestCode); protected void onActivityResult(int requestCode, int resultCode, Intent data) ; Content Providers getContentResolver().query(URI, Selection,SelectionArgs,SortOrder); Android iOS
  17. 17. Gestione permessi Le permission In Android vengono specificate tutte allinterno del file Manifest Tutti i permessi definiti nel Manifest vengono mostrati essere accettati dallutente al momento dell'installazione delapp Uses-feature Risorse hardware o software. Non detto che il device le possieda Permesso obbligatorio per accedere a determinate feature del dispositivo / sistema notifiche, posizione, camera, contatti, aggiornamenti in background, ... Responsabilit dello sviluppatore gestire il processo di request / response Richiesta one-shot Android iOS
  18. 18. Esecuzione background Service Started : Avviato tramite startService(). Pu rimanere in background per un periodo di tempo indefinito. Bound: Avvitao tramite bindService(). Offre una client- server interface.Legato a uno o piu componenti. System Service Download Manager : gestione del download demandata al sistema Sync Adapter Broadcast Receiver La piattaforma permette di completare un breve task partito in foreground (esecuzione finita) completare download partiti in foreground affidandoli al sistema eseguire task specifici avanzati in background audio location voip external-accessory background fetch remote notifications Android iOS
  19. 19. Poco customizzabili: solo suono e quick actions Protocollo TCP (con TLS/SSL), comunicazione unidirezionale Server -> Server Apple -> Device Payload max 2KB (prima 256 bytes!) Per poter utilizzare le notifiche: richiesta permesso one-shot registrazione al server remoto gestire gli eventi (notifica in-app, apertura da zero della app) Ricche e altamente customizzabili Protocolli: HTTP, XMPP Payload max 4KB Presentazione Permesi richiesti all'installazione dellapp fuori app: responsabilit sviluppatore(NotificationManager ) in-app: avvio:responsabilit sviluppatore (NotificationManager) Notifiche Push Android iOS
  20. 20. Notifiche push iOSAndroid
  21. 21. Account sviluppatore sul Google Play 25, una tantum Fee su paid apps e in-app purchase: 30% Servizi: Google Play Developer Console Scelta del prezzo libera per ogni paese Non perdere il Keystore per la release App altrimente sar impossibile pubblicare aggiornamenti. Pubblicazione Apple Developer account: 99 / anno Fee su paid apps e in-app purchase: 30- 40 % Servizi: App Store (Watch), Mac App Store Risorse e materiali grafici di supporto SDK e OS beta Scelta dei prezzi vincolata Android iOS
  22. 22. Pubblicazione Paid App non presente in tutti i Paesi. Es China Bisogna rispettare le Norme del programma di Google Play Nessun controllo dopo circa 2 ore disponibile sullo store Non possibile rimuovere lapp una volta pubblicata . Tempi di pubblicazione biblici ~ 15 giorni App controllata realmente! Alta probabilit di rifiuto se non si seguono le HIG Apple ma a volte anche per motivi assurdi Una piccola soluzione: expedited