blackberry10 and ios app sdk/platform comparison
TRANSCRIPT
Key Takeaways:
Understand the similarities and difference between the platforms
� What’s different
� What’s the same � Where differences matter
2
The Platforms
3
iOS (Kernel) & Drivers
Core Services
Graphics and Audio
Application Frameworks [Maps, Message …]
UIKit
BB10 (QNX micro-kernel) & Drivers
Core Services (/BPS)
Graphics and Audio
Application Frameworks [Qt, Maps, PIM, Share …]
Cascades / QML
Posix
Webkit
Android Runtime, AIR
Types of Apps
4
Web Apps
Native with Webview PhoneGap…
Native
(Objective C and Cocoa Touch UIKit, OpenGL)
Web Apps
Native with Webview WebWorks, PhoneGap…
Native
(C/C++, QML, Cascades, OpenGL)
Objective C and C
5
#include <stdio.h>!#include <stdlib.h>!!int !main(int argc, char **argv)!{! fprintf(stdout, “Hello World!\n”);! return EXIT_SUCCESS;!}!
C/C++
! C/C++ is used widely due to it’s portability. It’s a true cross-platform language (combined with POSIX) ! Enables Lots of BB10 Open Source Frameworks ! iOS can also run C/C++ apps (Objective-C++). Developers are
starting to look into this option for cross-platform savings. ! Simple on iOS (just rename your .m file into .mm and add objective-C+
+)
6
Platform Services
10
! BB10 is playing catch-up to iOS in SDK features and services
! Lots of similarities between key features …
! Differences to be discussed…
Thoughts…
! iOS ! Facebook/Twitter Connect APIs ! Background (/Headless) services
! VOIP ! Custom Navigation Apps ! Music / Downloads /Services
11
Cryptography*
! iOS and BB10 … similar features ! AES,DES,3DES… ! Key difference BB10 crypto algorithms are FIPS certified
! What the FIPS? Only Modules validated as
conforming to FIPS 140-2 are accepted by the Federal
Agencies of Canada/US for the protection of sensitive
information.
Service similarities (Invoke)
13
I need to open
this .doc file. Anyone?
I can open .doc
files
Invocation Framework
Similarities in UX
! Apple Says ! The Display Is Paramount
! Regardless of Its size ! Apps Respond to Gestures, Not Clicks
! RIM Says ! Content is King ! Apps must Flow
15
A key difference
! Apple Says ! People interact with One App at a Time
! RIM Says ! Extend/Connect
! BlackBerry people Multi-Task ! Combine that with Peek and Viewers/Cards
18
Application Behavior Lifecycle and when to store your data
• Must respond correctly to lifecycle events
• Can drain battery • Must store data
efficiently
19
Start
Exit
Normal (Active)
Thumbnail (Active/Inactive)
Hidden (Inactive)
iOS Lifecycle
20
! Long-Running Background Tasks ! Audio ! Location/Navigation ! VOIP ! Newsstand apps (downloads etc…) ! Accessory apps
Lists (ListView)
Container*{***..*****ListView*{*********dataModel:(XmlDataModel({*************source:*"models/items.xml"*********}*********listItemComponents:*[************(ListItemComponent({*****************type:*"header”*******************HeaderListItem*{*********************>tleText:*ListItemData.>tle*********************sub>tleText:*ListItemData.sub>tle*****************}*************},*************ListItemComponent*{*****************type:*"listItem”*******************StandardListItem*{*********************>tleText:*ListItemData.>tle*********************descrip>onText:*ListItemData.sub>tle*********************statusText:*ListItemData.status*****************}}}}}}*
Lists Summary
! iOS Storyboards are Visually appealing but … QML/Qt is just as descriptive.
! Data binding to Lists is much easier in Cascades than on iOS
27
Cascades Sheets
A sheet breaks the current navigational flow. It contains a subflow that need to be finished before the original application flow can be resumed.
Examples: Pickers, Forms
41