I attended an Apple seminar in Irvine titled : "In-House Application Development for iPhone and iPad". It was a good high level overview discussing all things iPad/iPod/iPhone for the Enterprise.
Agenda (Also See Attached):
- Exploring Possibilities in the Enterprise
- How are enterprise customers using mobile applications?
- Design Best Practices
- What makes a great app?
- Getting Started with the Platform
- Developer programs and training materials
- Development Overview
- Web App Development Overview
- HTML5/Javascript/CSS3 - What is possible with web technologies?
- Demonstration - Building a web app
- Native App Development Overview
- Frameworks and integration options available for native apps
- Demonstration - Building a native app
- Distribution and Deployment
- Channels and methods for application distribution
- The class was given by Allen Braham of Apple. He flew in from New Jersey. Attendees came from as far away as Las Vegas.
- Case Studies: Links are to pages explaining the apps, not company links.
- Phillips Fox: Keeping track of how much time is spent with clients
- Sun Belt: Connect MS SQL and AS/400 back end with inventory tracking app
- GE: Field service personell using iPad for inspections. They have a development team doing lots of internal apps.
- Standard Chartered: Has their own interal app store
- Medtronic: Interactive iPad ap for Doctors
- Genentech: One of their earliest customers. Using iPad for SAP expense report approvals. They had an great video about their iPad meeting app called Get A Room which is really entertaining.
- Mt Siani: Has 61 clinical systems. They distilled a single workflow to an iPad app.
- Deployment
- You can deploy up to 100 devices through a developer license. If you need more, you need a enterprise license.
- Each enterprise license has an single "Agent" who names "Admins". Admins can invite developers.
- The Agent is the only person who can do distribution. The Agent must have legal ability to bind the company in a contract with Apple.
- Admins or the Agent must approve development certificates.
- All three positions, Developer, Admin, and Agent can be the same person if necessary.
- Universal Apps: One binary for both the iPhone and the iPad.
- Design:
- Allen stressed making sure you focus on functionality first. Don't try to cram your desktop app into an iPad. Instead, think about the essentials and do the minimum first. Worry about graphics after you have a working app.
- A successful IOS project will have more design than coding. Think about what your users are doign that can be mobilzed to make their life easier.
- Emphasis is on "Bite Sized Apps", not large ones. "Many Bite Sized Apps make an entire meal".
- A lot of $$$ is spent doing training. You want small, easy apps so training becomes trivial.
- Do paper mockups. Mockups should not look too real. There are apps like "App Layout" or "iMockups" you can also look at.
- It's important that things not be polished because folks won't give feedback on a digital prototype like they will with a paper based one. (I agree!)
- One major pitfall is to make a screen a certain way because of aparticular API they are using.
- Every app that is developed internally starts with a User Mental Model: Objects, Task, and Concepts.
- Object: What are we working with . (Clendars, Days, Weeks, Appointments, Reminders)
- Tasks: What are the things we need to do. (Scheduling, Create, Edit, Search)
- Concepts: What are the high level conceptual things. (Searhching, Search, Filter)
- Development
- Web:
- Web apps can be done in HTML5, CSS3, and Java Script.
- WebKit is the engine behind Safari. Google Chrome uses WebKit. Blackberry and Android use it as well.
- There is a 5MB limit to SQL lite for saving offline data which is useful in "Airplane Mode".
- You can use "Configuration Profiles" They are generated using the iPhone configuration utility.
- Web Clips are a "Chicklet" which links to a web page. You get a safari window with an optionally hidden broswer bar.
- Dashcode : Used for making web apps. Use for iPad/iPhone as well. (Demo)
- Native:
- Done in XCode. (Demo)
- Hybrid apps:
- UI Web view within an app. You can take advantage of native applications.
- You can exceed 5 MB of data storage.
- Multitasking:Added iwth ios4. Only allows certain things:
- Voice over IP (Skype)
- Location
- Notification
- Task Finishing
- Fast App Switching.
- Playing audio in the background.
- Push Notifications. Push notifications are available in the enterprise as well.
- Don't send sensitive information over alerts.
- You can ship a custom sound for notifications.
- Your server has to maintain the id # of the devices you are pushing towards. You push a JSON payload to the apple cloud notificaiton service.
- Only the last message is delievered. If you miss the message,. you will only get the latest.
- Push Notifications and Local notifications are only available through native apps.
- Accessories:
- To build an accessory, you have to join the Made For iPod program.
- Bluetooth Glucose meter.
- Infinite Periferels Sled. Uses 30 pin connector. Infinite Periferals gives you an SDK.
- Location Based Services:
- GPS takes more power than cel tower.
- Think about Precision, Power, and TIme
- Local Storage:
- SQL lite. (Core Data)
- Property Lists : an Apple Standard. They can be serialized or de-serialized to/from data strucutres very quickly.
- Parsing Speed for the same data:
- JSON 416ms
- XML 812 ms
- Ascii Property List 140ms
- Binary Property List 19ms
- App Security
- Hardware Encryption: There is hardware encryption on the iPhone, iPad. etc.
- AES 256 bit encryption
- Always on for all data.
- Instantaneious remote wip
- Data Protection: All data at rest is encrypted using hardware encryption.
- There is no shared memory between applications.
- To brick the system, you just have to throw away the encryption keys.
- Hardware Encryption: There is hardware encryption on the iPhone, iPad. etc.
- Links:
- Check out WWDC Sessions 103 and 204 and 209. 306 and 309
- Apple Human Interface Guide:
- "The HIG" from the iBookstore on your iPad
- iPad / iPhone for Business
- In-House App Development Accelerator Guide
- iOS Developer Enterprise Program Enrollment