development for the iphone ipad from a j ava perspective
play

Development for the iPhone/ iPad from a J ava Perspective The - PowerPoint PPT Presentation

Development for the iPhone/ iPad from a J ava Perspective The Tools, The Language, The Experience Ognen Ivanovski Netcetera 2 Myself > Software Architect; @Netcetera since 2001 > 2000 - present: Java (enterprise, web, swing, RCP)


  1. Development for the iPhone/ iPad from a J ava Perspective The Tools, The Language, The Experience Ognen Ivanovski Netcetera

  2. 2

  3. Myself > Software Architect; @Netcetera since 2001 > 2000 - present: Java (enterprise, web, swing, RCP) > 2008 - present – Mobile Development: Android, iPhone OS – Technical Lead for Wemlin 3

  4. What are the key factors that influence the development for these platforms? 4

  5. Hardware 5

  6. Devices > iPhone > ARM11 ~ 400 MHz > iPhone 3G > 128MB RAM (~50MB available to an app) > iPod Touch > Hardware Graphics Accelerator > iPod Touch 2nd generation > Slightly faster > iPhone 3GS > ARM Cortex V8 ~ 600 MHz > 256MB RAM > iPad > Apple A4 SoC (ARM) ~ 1GHz > 256MB RAM 6

  7. Physical Form > iPhone > iPad – 480 x 320 @ 163ppi – 1024 x 768 @ 132ppi – 3.5in – 9.7in – 135g – 730g 7

  8. Mode of Use > stability of device assumption > running time > situations > way of interaction – fingers are thick, etc.. – touch interface 8

  9. The Walled Garden 9

  10. Developer License Agreement > Fluctuates > Lately forbade – usage of central “usage statistics” agencies – location based advertisement – use of cross-platform tools – background apps (at the moment) – central > Risk of rejection greatly influences ambitions > Risk of further changes affects even more decisions 10 10

  11. Review Process > Ensures – conformity with the license agreement > End users trust the store – no malicious software > Our experience so far: predictable 11 11

  12. Distribution Options > Free/Paid app in the appstore > AdHoc – good for beta testing – good for distribution within smaller companies > Enterprise Distribution – difficult go get – 500+ employes – credit rating 12 12

  13. [master slide] 13 13

  14. > Increasingly seen as a marketing vehicle > Marketing priority is often higher than providing actual value to end users > It doesn’t work! – bad reviews by unsatisfied customers – brand damage 14 14

  15. Key factors that affect the development for these platforms > Hardware > Form Factor / Screen Side > Mode of Use > The Walled Garden – License Agreement – The Distribution Models > The Hype 15 > The Distribution Models

  16. As a result 16 16

  17. Design > “ We worked on iPad projects without ever having touched an iPad.” > “One client asked us to “start working on that tablet thing” even before we knew whether the iPad was real. “ > “ Are we designing desktop programs, web sites or something entirely new?” > “ …we had no other choice than printing out your screens on a 1:1 scale. “ http://informationarchitects.jp/designing-for-ipad-reality-check/ 17

  18. Example 18

  19. Characteristics > End-user oriented apps (products) > Information consumption oriented > Better (native) interface to web sites and services > Minimum Input Maximum Output > Games > “Search hasn’t happened on mobile devices” -- Steve Jobs 19 19

  20. iPhone Apps > Make good use of “connected everywhere anytime” > Identify the situations and provide the right data or service > E.g. – Paperless tickets – Mobile Payments 20 20

  21. iPad Apps > Sits between iPhone and a PC – not as mobile as iPhone – not as powerful as PC > Compel users to bring the iPad instead of the laptop out – identify conveniences – out do certain apps utilizing them > Compared to iPad: make use of bigger screen 21 21

  22. > Web / Desktop – hardware / situation is irrelevant > Mobile application – tries hard to identify the situation the user is in – performance, hardware is crucial 22 22

  23. Diving Deeper: The Platform 23

  24. Toolbox (sanctified) 24

  25. Objective-C > Dynamically Typed, late bound > Super-set of C > Semantically very similar to Java – root class – single inheritance – Smalltalk-like syntax for message passing > Protocols are just like interfaces – have optional methods > Classes can be extended through categories > Classes cannot be nested > Verbose 25 25

  26. Memory Management > Manual Reference Counting > Autorelease pools anObject = [argumentObject retain] [anObject release] return [anObject autorelease] > THE biggest issue we had and still have – dangling pointers 26 26

  27. The Stack > OS X (Darwin, Mach 3) > libc (POSIX) > Core Services > CocoaTouch 27 27

  28. Frameworks 28 28

  29. Minimal Application 29

  30. Delegate Pattern 30 30

  31. UIKit > The toolkit for doing UI – views, controls – event handling – etc... > Is also an application framework 31 31

  32. The MVC you know > extension through inheritance > mixed behavior and view construction 32 32

  33. The Classic MVC > views composed out of stock components in interface builder > behavior in controllers > connections in interface builder (outlets, actions) 33 33

  34. UIKit: Common components > UIWindow > UIWebView > UIView > UITextView > UITabBar > UIActivityIndicatorView > UINavigationController > UIPageControl > UITableView > UISearchBar > UITableViewCell > Text, slider, progress, etc... > UIButton 34

  35. Event Handling > motion events also (accelerometer based) > responder chain 35 35

  36. Gesture Recognizers (iPad) > Helpers for views > Built in: pinch, zoom, tap, etc... > Custom built 36

  37. Actions, Notifications, KVC > Events have narrow meaning -> user interaction > Converted into actions by views (controls) > Actions > Key-Value Observing <~> Property Observation – much more elaborate though – comes out of the box for declared properties > Notifications: broadcasting messages to more than one party 37 37

  38. CoreAnimation > Core Animation Layer – hardware accelerated > a number of properties can be animated – size, position, color, etc,... – current affine transformation > Animations are transactional and sequence-able – transactional: happen at once – sequence-able: happen one after the other > Very easy to use 38 38

  39. CoreData > Object Graph Storage > Comparable to O-R mappers, but – multiple storage destinations (sqlite3, memory xml) – private schema > Dynamic classes > Query Language 39

  40. Web Services > ObjectiveResource – http://iphoneonrails.com/ > wsdl2objc – http://code.google.com/p/wsdl2objc/ 40 40

  41. Feeds > A particularly good format and paradigm – check with server – have local copy – update local copy with newly discovered items – app is useful also offline 41 41

  42. > iPhone App  Covers > The Zürich greater area > Liechtenstein > See departure times for public transport > Doesn’t need a network connection > http://mobile.netcetera.ch/wemlin > http://itunes.com/apps/wemlin 42 42

  43. Ognen Ivanovski ognen.ivanovski@ netcetera.com.mk Netcetera http:/ / netcetera.ch

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend