deep dive xamarin.ios
Post on 07-May-2015
Embed Size (px)
DESCRIPTIONMy presentation from St. Louis Days of .NET that covers the 20% of concepts that helps you get through the 80% of your iOS app development with Xamarin.IOS.
- 1.Xamarin.IOS Xamarin.IOSBen Bishop email@example.com
2. for code/slides... @benjamminstl @rendrstl 3. Who Am i? My name is Ben Bishop (Twitter: @benjamminstl) I grew up in a small rural town of Indiana Went to Purdue University Now lives in Saint Louis Been independent for 4+ years Worked at an agency for 5 years, 1 year at TMG 4. my new company http://rendr.io 5. David ortinau http://xamarin.com/evolve/2013 6. FLashAway3D, AIR, AS3, RobotLegs, FlexUnit 7. Native IOS Xamarin.IOS, Facebook, Twitter, SQLite, C#, NUnit 8. $1200+ 60 hours 9. Native Android Xamarin.Android, C#, Twitter, Facebook, SQLite 10. Hybrid PhoneGap, HTML, CSS3, jQuery, Backbone, RequireJS 11. Mobile optimized Web jQuery, Backbone, CSS3, Ruby on Rails, Moustache, JSON 12. WHAT IS A XAMARIN?The best damn mobile team, building the best damn mobile platform. 13. What is Mono? Mono 1.0 was released on June 30, 2004The Mono runtime contains a code execution engine that translates ECMA CIL byte codes into native code and supports a number of processors: ARM, MIPS SPARC, PowerPC, S390 , x86, x86-64 and IA-64 for 64-bit modes.Also has support for LLVMRuns on Linux, OSX, Windows, PS3, XBox 360, Wii 14. How does Mono Work? Xamarin compiles your app to a native binary, not cross-compiled, and not interpreted. 15. Code Structure By only having to write core code once, more time can be spent tuning the UI per platform. 16. cross platform strategies 17. must have components Components that keep you from having to write platform specific code. 18. xamarin.mobile A component that helps abstract your code for location, photos, and contacts across all platforms. 19. Xamarin.Social A component that helps abstract your code for App.Net, Twitter, Facebook, and Flickr 20. xamarin.auth Makes OAuth suck less. 21. Data RestSharp, SQLite.NET, and JSON.net help you store and retrieve data for your app. 22. Frameworks https://github.com/MvvmCross/MvvmCross https://github.com/benbishop/MonkeyArms 23. interfaces are your friend 24. iOS ImplementationHave your platform specific views implement the interface. 25. android implementation 26. ios implementation 27. android implementation 28. Mediator/View ModelYour Mediator or ViewModel will have a reference to the View 29. UI Logic 30. Mock your viewsMoq lets you mock your views for Unit Tests. 31. Unit Test UI LogicMoq can raise events and verify Method invocation. 32. Test runner 33. StringsResourceManager https://gist.github.com/benbishop/6232751 34. detect locale 35. anatomy of an iOS app 36. info.plist 37. info.plist 38. importantNeed to specify 640x1136 Launch Image so iOS knows your app supports tall UI 39. entitlements.plistNew for iOS7 40. New to iOS7 41. Main.CSEntry point for your app 42. AppDelegate.csCreates the UI Window and attaches a ViewController. 43. ViewControllerThis is responsible for your screen. 44. ViewController Lifecycle 45. Setup/tear downGreat place to do any setup/tear down. 46. View 47. Creating a view 48. UIBUTTON 49. frame vs bounds Frame A view's frame (CGRect) coordinate is the position of its rectangle in thestarts at the top left. superview's system. By default it Bounds A view'sits own coordinate expresses a bounds (CGRect) system. view rectangle in 50. extend views 51. class extensionsAll UIView classes now have a CenterHorizontally method 52. Images for multi DPI 53. Text Input 54. view event handling 55. View Controller TypesUIViewControllerTabViewControllerUITableViewControllerUINavigationController 56. UITabViewController 57. Setting title/Icon 58. Header buttons 59. detecting ios7 60. UITableViews 61. UITableViews 62. UITableviewsource 63. UITableviewsource 64. UITableviewCell 65. uitableviewcell styles 66. UIPickerView 67. UIPickerView 68. uipickerview source 69. UIPICKERVIEWMODEL 70. UIPickerviewModel 71. UIPickerviewModel 72. UIPickerviewmodel 73. Dialoghttp://docs.xamarin.com/guides/ios/user_interface/monotouch .dialog/ 74. Rapid UI dev 75. JSON support 76. AttributesLets decorate!! 77. parting thoughts 78. experiences iOS sandbox is limited.You are at Apples mercyProvisioning is a painiOS SDK is very prescriptive in regards to look and feelMost things are genuinely easier in iOS than Android. Music player, sharing to FB/Twitter, selecting photos...Few device configurations to work with. 79. Gracias