XAMARIN 10 PRAKTICKÝCH ZKUŠENOSTÍ Roman Fischer
[email protected]
AGENDA KDO JSME PROČ JSME ZVOLILI XAMARIN 10 PRAKTICKÝCH ZKUŠENOSTÍ DISKUZE
Softwarová řešení a mobilní aplikace na míru
2
SOFTWAROVÁ ŘEŠENÍ NA MÍRU
Softwarová řešení a mobilní aplikace na míru
3
PROČ PRÁVĚ XAMARIN?
12/2012
První poptávka na jednoduchou mobilní aplikaci – Android, iOS a WP
01/2013
• Rozhodnutí pro Xamarin • Výhody • Známé prostředí VS + C# • Alternativy • Nativní vývoj • PhoneGap atd.
2016
• 3,5 roku zkušeností • Desítky mobilních aplikací
Softwarová řešení a mobilní aplikace na míru
4
XAMARIN – SPRÁVNÁ VOLBA
18 projektů – 30 mobilních aplikací
Softwarová řešení a mobilní aplikace na míru
5
1. IKONY PRO RŮZNÉ TYPY ZAŘÍZENÍ Aplikace je spouštěna na různých zařízeních s různými typy displejů Pokud je použita jen jedna velikost ikon, pak nevypadají optimálně
Softwarová řešení a mobilní aplikace na míru
6
1. IKONY PRO RŮZNÉ TYPY ZAŘÍZENÍ Nativní postup Obrázek vložený v různých velikostech Zvětšuje velikost balíčku Náročné na součinnost grafika
Použití fontů Jeden soubor obsahující velké množství ikon Na všech zařízeních vypadají stejně
Softwarová řešení a mobilní aplikace na míru
7
1. IKONY PRO RŮZNÉ TYPY ZAŘÍZENÍ Nativní postup
Material Icons Font
Softwarová řešení a mobilní aplikace na míru
8
2. LOKALIZACE TEXTŮ Častým požadavkem klientů je podpora více jazyků Aplikace obvykle detekuje jazyk daného zařízení a případně umožní změnu jazyka
Softwarová řešení a mobilní aplikace na míru
9
2. LOKALIZACE TEXTŮ Nativní přístup Náročné na údržbu
RESX Jeden soubor pro všechny platformy Komplikovanější používání
Softwarová řešení a mobilní aplikace na míru
10
2. LOKALIZACE TEXTŮ Nativní postup -iOS
RESX
Nativní postup - Android
Softwarová řešení a mobilní aplikace na míru
11
3. RŮZNÉ VELIKOSTI DISPLEJŮ Obvykle je nutné podporovat širokou škálu koncových zařízeních s různými typy displejů
Softwarová řešení a mobilní aplikace na míru
12
3. RŮZNÉ VELIKOSTI DISPLEJŮ Vše je relativní Android px = dp * (dpi / 160) Když DP nestačí, lze pro různé displeje definovat jiné hodnoty iOS – Auto Layout, StackView
Softwarová řešení a mobilní aplikace na míru
13
3. RŮZNÉ VELIKOSTI DISPLEJŮ - ANDROID Definice různých hodnot podle šířky displeje
Softwarová řešení a mobilní aplikace na míru
14
3. RŮZNÉ VELIKOSTI DISPLEJŮ - iOS Jak funguje Auto Layout
Softwarová řešení a mobilní aplikace na míru
15
4. VYKRESLOVÁNÍ VLASTNÍCH KOMPONENT Některé projekty vyžadují specifický design na míru bez využití nativních komponent
Softwarová řešení a mobilní aplikace na míru
16
4. VYKRESLOVÁNÍ VLASTNÍCH KOMPONENT Stejné možnosti jako při nativním vývoji Stačí rozšířit třídu View (u iOS UIView), přepsat její metodu OnDraw a v ní snadno definovat podobu své nové komponenty.
Softwarová řešení a mobilní aplikace na míru
17
5. STAHOVÁNÍ A UKLÁDÁNÍ DAT Řada mobilních aplikací je integrována s nadřazeným IS Aplikace se musí vyrovnat se ztrátou konektivity Případně je potřeba minimalizovat datovou náročnost na datovém roamingu
Softwarová řešení a mobilní aplikace na míru
18
5. STAHOVÁNÍ A UKLÁDÁNÍ DAT Napojení na webové služby (WCF, REST) SQLite databáze
Softwarová řešení a mobilní aplikace na míru
19
6. ASYNCHRONNÍ PROGRAMOVÁNÍ Žádná dlouhotrvající operace by neměla běžet v hlavním vlákně Pokud budete dlouho blokovat hlavní vlákno OS vaší aplikaci ukončí Když probíhá dlouhotrvající operace měli bychom uživateli zobrazit, že se na pozadí něco děje
Softwarová řešení a mobilní aplikace na míru
20
6. ASYNCHRONNÍ PROGRAMOVÁNÍ Doporučeno používat async/await Je nutné ošetřit co se stane při rotaci a když uživatel opustí aplikaci Zastavení operace Spuštění asynchronní operace
Softwarová řešení a mobilní aplikace na míru
21
7. KOMUNIKACE PŘES BLUETOOTH Aplikace pro dálkový odečet energií Požadavkem byla komunikace přes BT pomocí specifického protokolu Švýcarský dodavatel HW neposkytoval podporu pro Android Problém měl dvě části Implementace protokolu Odeslání dat přes BT Softwarová řešení a mobilní aplikace na míru
22
7. KOMUNIKACE PŘES BLUETOOTH Protokol lze pro všechny platformy implementovat jen jednou
Softwarová řešení a mobilní aplikace na míru
23
7. KOMUNIKACE PŘES BLUETOOTH Stejné možnosti jako u nativního vývoje Ukázka komunikace pro Android:
Softwarová řešení a mobilní aplikace na míru
24
8. OPERACE NA POZADÍ Cílem bylo vytvořit aplikaci s nonstop sledováním polohy Automatická aktualizace dat na pozadí Vše bez zásahu uživatele
Softwarová řešení a mobilní aplikace na míru
25
8. OPERACE NA POZADÍ Android Pro všechny akce na pozadí se používají různé druhy třídy Service
iOS Omezené možnosti Operace na pozadí má od probuzení do skončení omezený čas Na pozadí nelze dělat libovolnou činnost v libovolný čas. Softwarová řešení a mobilní aplikace na míru
26
8. OPERACE NA POZADÍ - ANDROID
Naplánování spuštění
Provedení operace na pozadí
Softwarová řešení a mobilní aplikace na míru
27
8. OPERACE NA POZADÍ – iOS Spuštění standardního sledování polohy
Spuštění significant location
Softwarová řešení a mobilní aplikace na míru
28
9. PUSH NOTIFIKACE Cílem je upozornit bezprostředně uživatele na nějakou událost Případně aktualizovat data v aplikaci okamžitě po jejich aktualizaci na serveru
Softwarová řešení a mobilní aplikace na míru
29
9. PUSH NOTIFIKACE Aplikace nic sama nekontroluje notifikaci obdrží od OS Druh operace na pozadí (platí pro ně stejná omezení) Klasické notifikace (zobrazení upozornění uživateli) Skryté notifikace
Softwarová řešení a mobilní aplikace na míru
30
9. PUSH NOTIFIKACE – iOS Princip
Implementace push notifikací
Softwarová řešení a mobilní aplikace na míru
31
9. PUSH NOTIFIKACE – ANDROID Získání tokenu
Softwarová řešení a mobilní aplikace na míru
32
9. PUSH NOTIFIKACE – ANDROID Aktualizace tokenu
Přijetí zprávy
Softwarová řešení a mobilní aplikace na míru
33
10. POUŽITÍ KNIHOVEN TŘETÍCH STRAN – iOS Zadání – mobilní aplikace pro streaming šifrovaného videa, dodavatel streamu podporoval pouze Objective C V případě že potřebujete použít knihovny které nejsou součástí Xamarinu Bindings Library
Softwarová řešení a mobilní aplikace na míru
34
10. POUŽITÍ KNIHOVEN TŘETÍCH STRAN – iOS Mapování nativní knihovny do C#
Softwarová řešení a mobilní aplikace na míru
35
10. POUŽITÍ KNIHOVEN TŘETÍCH STRAN – iOS Vytvoření výčtového typu
Softwarová řešení a mobilní aplikace na míru
36
DOTAZY A DISKUZE DĚKUJI ZA POZORNOST WWW.SKELETON.CZ
SLEDUJTE NÁS:
Softwarová řešení a mobilní aplikace na míru
37