2. BlackBerry 10 OS
• Egy fokozatos fejlesztési folyamat
eredménye
– BlackBerry Tablet OS (PlayBook)
– BlackBerry Tablet OS 2.0 (PlayBook)
– BlackBerry 10
• Nagyon friss, január 30.-án jelent meg
• Az új funkciókat integrálni fogják a régi
Tablet OS-be is
3. BlackBerry Tablet OS -1-
• Teljes mértékben saját fejlesztés
• QNX Neutrino alapok (valaki emlékszik a
floppy-s változatra? )
• Minden tekintetben
egyedi felületet kapott
5. BlackBerry Tablet OS -2-
• Teljes értékű gesztus alapú vezérlés, az
eszköz kávája is aktív szerepet kap benne
• BlackBerry Flow
• Sok támogatott fejlesztői platform:
– BlackBerry Java
– Adobe AIR
– Natív C/C++
– Android
6. Micsoda?! Android??
• Az OS része az Android Player
• 2.3. –as Gingerbread alkalmazások natív
futtatása
• Portolás szükséges
• Az alkalmazások az Android verziónak
megfelelő UI-jal jelennek meg
• Hamarosan ICS támogatás is lesz
7. BlackBerry 10
• Mindent „tud”, amit a Tablet OS
• Kiegészített, saját natív UI vezérlők
megjelenése
• Multitasking, fejlesztő dönthet a háttérben
futásról
• BlackBerry Hub megjelenése
• Támogatottá vált még „néhány” fejlesztői
platform….
10. BlackBerry World
• Most érte el a 100.000 alkalmazást
(a Windows Phone-os market most tart
130.000-nél…)
• A gyártó minden erejével (és pénzével)
támogatja az új/portolt alkalmazások
felkerülését
– Port-a-Thon-ok
– Marmalade Playbook offer
11. Android alkalmazások portolása
• Command line tool-ok
• Csak 2.3-as alkalmazások portolhatóak
• Google API-k nem támogatottak
• Egy tool ellenőrzi az APK-t, egy másik tool
elvégzi az átcsomagolást
• A felmerülő hibákat és inkompatibilitást jelzi a
tool – 5 level
• Probléma esetén az Android alkalmazás
módosítása szükséges
12. Natív alkalmazás fejlesztés
• BlackBerry Cascades SDK
• Simulator
• Nyelv: Qt C++ módosított változata, DE
• UI: Cascades QML + JavaScript
• Aki amit eddig tudott a QML
komponensekről…azt felejtse el
• Valóban Qt és QML komponenseket
használunk, de Cascades gyűjtőnéven
13. Kitekintés: Qt
• C++ framework
• Crossplatform: Windows, Linux, OSX,
Android, Symbian, MeeGo
• Minden esetben natív alkalmazássá fordul
a kód
• Elsősorban GUI-s alkalmazásokhoz
14. Kitekintés: QML
• Qt Modeling Language
• Deklaratív leíró nyelv
• A leírás alapján hierarchikusan
példányosodnak az objektumok
• Objektumoknak Property-jei és Event-jei
vannak
• Objektum hierarchia tetszőlegesen
bejárható C++ oldalról is
15. Cascades
• Egyfajta UI framework a QML felett
• Egyszerűbb alkalmazások készíthetők 1-2
sor valódi programkód írása mellett is
• Az elképzelés: UI interakciókat és
eseményeket a QML kezeli, a háttérlogika
a gyors futás miatt Qt C++ kód
• Láttunk már olyan platformot, ahol ez
pokoli gyors felületet eredményezett…
16. Qt+QML vs Cascades
• Úgy képzeljük el, hogy az ismert
keretrendszer fölé húztak még egy réteget
• „Régi” keretrendszer csak nyomokban
fedezhető fel (szemfüles módon)
• QML funkcionalitása megmaradt
• Qwidget nem létezik, és olyan osztályok
sem, melyek ehhez kapcsolódnak (pl.
QSyntaxHighLighter)
• QML külön szálon fut default
17. Ami nagyon jó
• Elérhető az OS teljes UI vezérlőtára
• Ezek C++ osztályai is, így már C++ -ból is
fejleszthetünk UI-t (bár az eredeti Qt-s
koncepcióhoz képest ez visszalépés)
• Megmaradt a Signals and Slots
mechanizmus (kibővítve, már lehetséges
C++ <-> QML kötés is)
• QML teljesen OpenGL ES-sel renderelődik
default
18. Ami kevésbé tökéletes…
• Új layout rendszer miatt megszűnt a relatív
pozícionálás
• Ami bevett gyakorlat volt Qt alatt, az itt
már lehet hogy workaround-ot igényel
• Egyes komponensek máshogy
viselkednek (pl. Label)
• DE könnyű megszokni
19. UI Guidelines
• Egyfajta BB10 „élményt” definiáltak a natív
alkalmazásoknak
• Pontos és részletes guideline a felületek
tervezéséhez
– http://developer.blackberry.com/devzone/desi
gn/bb10/
• Eltérni lehet, de akkor az alkalmazás kilóg
az összképből
21. Fejlesztés Cascades SDK-val
• Minden esetben natív kódra fordul az
alkalmazás
• Eclipse alapú SDK
• Beépített fejlesztést támogató plugin-ek
(QML editor, BlackBerry Device Wizard)
• Gyári projekt template-ek
22. C++ logika
• Minden alkalmazáshoz tartozik legalább 2
osztály a template-ekben
• Egyik a main() függvény, másik a UI-t
hozza létre (most épp applicationUI a
neve)
• C++ metódusok hívhatóak a UI-ról
• QML vezérlők, property-k módosíthatóak
C++ -ból
• Aszinkron működést egyszerű biztosítani
23. Saját C++ osztályok
• Általános osztályok készíthetőek a modell
számára (Qobject parent rendszer)
• C++ osztályok egy az egyben adhatóak át
a QML-nek -> QML-szerű viselkedés
• Saját UI controllerek implementálhatóak
24. Amit még a BB ad
• Developer Site
– Több száz oldalnyi dokumentáció, részletes
leírás, példák mindenre
– GitHUB profil a már elkészült sample
appoknak
– Részletes API reference
– BugTracking
– Developer blog
• Developer Forum