I got the opportunity today to attend Apple iPhone Management and Web Application Development training with a bunch of my colleagues direct from Apple Australia. I took a heap of notes which are available below:
Introduction
- supports new standards CalDAV and CardDAV
- on iOS4,VPN functionality is now an app supplied from vendors (Juniper and Cisco), as opposed to only built into the operating system, meaning the software can be updated outside of OS revisions
- security – device (pass-codes, device restrictions and policy endorsements), network (AES-256 hardware encryption, file level encryption, encrypted backups, remote and local wipes) and platform (mandatory application signing when submitted and checked when downloaded, sandboxed applications, encrypted keychain for passwords)
Profiles
- self service (configuration profiles to set mail, wi-fi, etc, distributed by USB or wi-fi, made in iPhone Configuration Utility) versus managed deployments
- iPhone Configuration Utility – free for Mac and PC
- identity identifier – important, certificate
- can set whether configuration security can be removed or not
- set passcode policies – length, autolock time, remember history, etc.
- restrictions
- set different wi-fi settings to appear on phone, VPN settings
- web clips – bookmarks that are set on the phone
- advanced – access point names (APN), Telstra has this for your own network inside the Telstra cloud
- if you create a profile (eg com.demo.wifi) then a user could create a profile with the same name unless you sign it (in which case it would get bounced)
- deploying profiles – USB, email (not recommended because they a user could use an use old profile stored in emails and you can’t tell if profile has been loaded), web, over the air
- Secure Certificate Enrollment Protocol (SCEP) – a way to get the certificate and encrypted profile onto the phone when deploying over the air, Cisco technology originally used between routers, was the cludgy way before IOS4
- Mobile Device Management – new in IOS4 – opt-in by the user and then MDM takes over, validates the phone by IMEI number, Apple Push Notification Server talks to the device, device talks to MDM via secure HTTPS channel
- enrollment to confirm trusted user and device, certificates and remote configuration, additional restrictions such as disable data roaming
- query the phone – model and device details, version, roaming status, applications installed on phone, settings for compliance, etc
- provisioning profiles for enterprise applications to set usage and expiry dates
- manage phone – install and remove settings, profiles, remotely clear (good for help desks), remote locking of device, remote wipe
- third party solutions in this space from Sybase, MobileIron and Trust Digital amongst others, early days for most of these vendors and technologies
- once enrolled you cannot un-enrol
- no limit to number of profiles – can be all encompassing or can be small (ie just a wi-fi setting), can run at the same time, can’t disable a profile only remove it
- not possible to do web filtering or block a third party application to be installed (except by disallowing access to iTunes or the App Store, with MDM you can see which apps are installed
- blocking access to the application (eg camera) also blocks access to the API
iTunes
- activation, sync and backup and update software
- activation gets carrier settings as well as registers the device, happens whenever a new SIM card is installed, possible to put iTunes into activation only mode (what they do at the Apple Store)
Application Installation
- App Store, adhoc or enterprise
- build application in Xcode on a Mac and get into the AppStore
- adhoc and enterprise – provision, build, deploy and install (traditionally only via a cable)
- for enterprise, now Wireless App Distribution, put application on a web server and install via the iPhone via your own application catalogue app
- could also build an enterprise front end to the App Store, but you still need iTunes account and deal with purchases
- can gift an application but is tedious
Development
- SDK – native apps written in Objective C (using XCode on a Mac)
- web application – native user experience but runs from a web site using HTML5 and CSS, view optimized for Mobile Safari
- hybrid applications – part SDK and part web
- developer platform ($99 USD) and enterprise developer ($299 USD) – get Xcode plus emulators and resources
- iPhone 51% of worldwide smartphone market, in Australia it is 93% of smartphone market
- WebKit is basis of Safari, open sourced by Apple, also used by Chrome, Android, Symbian and RIM – used by almost all of the mobile browsers
- web applications cannot access secure storage, camera or address book, receive push notifications orallow rapid updates, however, can do offline access and storage
- web application distribution – host on a web server, create a landing page and populate with web applications
- need web development skills, any IDE and most technologies (except Flash), iPhone and iPod Touch are identical to test on, can also use emulator
- examples – m.uiowa.edu and m.mit.edu to replace intranet and be useful on an iPhone
- same website, different view depending on the device
- applications need to be finger friendly, a finger = 44px
- applications need to be aware of bandwidth and latency – Edge -> 3G -> Wifi, turn on server side compression (GZip), break data into blocks (eg Wikipedia clicking Show to get more data), reduce number of files requested, JSON for requests, optimize image size for the device, use CSS3 for design
- news.com.au – 1130 files on web site versus 136 on mobile site and 43 seconds versus 8 seconds load time
- give users a website escape to get to more functionality if they need it
- at Apple spend much more time on design and less on code, debug and test
- design for ease of use- straightforward well designed workflow (such as settings screen)
- viewport – 320 x 480 screen, but can display larger, set viewport via code
- home screen icon – png file and link in code
- full screen mode with no navigation bars, requires home screen icon and runs in own instance
- set a splash screen – image and meta tag in the Head
- SVG support – good for zooming and business intelligence
- PDF support
- URL schemes – to display maps, telephone integration, mail integration, SMS and custom – just put URL in the scheme format
- geolocation API as part of 3.0 – get current coordinates, uses battery quite considerably so use on intervals
- orientation – 90, 0, -90 or 180, you code if the application looks different in different modes
- user agent strings for iPhone and iPad
- Css3 for transforms, transitions and animations as well as design like rounded corners
- see http://www.apple.com/html5/ for coolness
- touch events and gesture events eg. touchstart, touchmove and touchend
- no applets, tooltips, hover, WML, file uploads and download, mouse over, print and modal dialogs, X509 certificates
Offline Data Storage
- HTML5 implementation, not unique to iPhone
- offline application cache – manifest file from website, requests data then keeps synchronized, means application can run offline
- key-value storage – session or local storage, persist between closing the browser, cannot be encrypted in HTML5 but could store encrypted data in the value
- local JavaScript database
- full support for manipulating the DOM
Frameworks
- Dashcode – good for simple applications or prototypes, from Apple, part of toolkit, Mac only
- Sencha – rapid tool, takes care of underlying events, templates for controls and types, iPhone and iPad
- jQTouch
SDK
- push notifications
- accessories only talk to SDK applications
- enhanced location based applications, embedded Google maps
- rich media
Hybrid Applications
- full access to device, enhance without redeploy
- iFrame in the native application
Thanks fro this post. I think it is great start to give tutorials to all developers. An dhope it might b very useful to all.
Regards..
Frida Adams from Web Application Development
Pingback: CDS43: 2010 Review « CDS 43