Fast ANDroid Furious Android with C# in 20 minutes
What is Mono? <ul><li>Open source  implementation of the CLR </li></ul><ul><ul><li>Linux, MacOS X, Solaris, BSD, Wii, PS3 ...
What is was Mono for Android? Mono ('Silverlight subset') + Android API bindings  + 'AXML' intelli-sense support  + Visual...
Mono for Android System Req's <ul><li>To play in the simulator ( FREE ) </li></ul><ul><ul><li>Mac OSX  with MonoDevelop  O...
//TODO: <ul><li>Activity </li></ul><ul><ul><li>OnCreate </li></ul></ul><ul><ul><ul><li>SetContentView and FindViewById<T> ...
 
<ul><li>Activity Lifecycle </li></ul><ul><li>Active/running </li></ul><ul><li>Paused </li></ul><ul><li>Stopped </li></ul><...
Details! <ul><li>Debugging </li></ul><ul><li>Linking </li></ul><ul><li>UI </li></ul><ul><ul><li>iOS </li></ul></ul><ul><ul...
Debugging <ul><li>'soft debugger' gets embedded in your app </li></ul><ul><ul><li>Can be configured (IP address, port) </l...
Linking <ul><li>Mono compiler strips out unused classes/libraries </li></ul><ul><ul><li>Mobile devices – size matters! </l...
Navigation <ul><li>Getting from screen to screen </li></ul><ul><li>StartActivity() </li></ul><ul><li>Intent </li></ul><ul>...
Databinding (lists) <ul><li>More work that you are used to... </li></ul><ul><li>BaseAdapter </li></ul><ul><ul><li>GetView ...
'translation'
Example: RestGuide Runs on Android, iOS and Windows Phone 7 github.com/conceptdev
Example: MIX11 Runs on Android, iOS and Windows Phone 7 mix11.confapp.com
Any questions?
Professional iPhone w/ MonoTouch
Upcoming SlideShare
Loading in …5
×

OzAltNet Fast-ANDroid-furious

6,946 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
6,946
On SlideShare
0
From Embeds
0
Number of Embeds
4,954
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • These examples are useful http://www.otierney.net/objective-c.html http://en.wikipedia.org/wiki/Objective-C
  • OzAltNet Fast-ANDroid-furious

    1. 1. Fast ANDroid Furious Android with C# in 20 minutes
    2. 2. What is Mono? <ul><li>Open source implementation of the CLR </li></ul><ul><ul><li>Linux, MacOS X, Solaris, BSD, Wii, PS3 </li></ul></ul><ul><ul><li>Started in 2001 as Ximian , purchased by Novell in 2003, released in 2004 </li></ul></ul><ul><ul><li>2009: MonoTouch created (released 2010) </li></ul></ul><ul><ul><li>2010: MonoDroid created (released 2011) </li></ul></ul><ul><ul><li>2011: Novell purchased by Attachmate ($2.2b) </li></ul></ul><ul><ul><ul><li>entire Mono team sacked > startup Xamarin created... </li></ul></ul></ul><ul><li>http://www.mono-project.com/ </li></ul><ul><li>http://github.com/mono </li></ul>
    3. 3. What is was Mono for Android? Mono ('Silverlight subset') + Android API bindings + 'AXML' intelli-sense support + Visual Studio plug-in (or MonoDevelop) = Android application http://mono-android.net/ Released April 2011 Retired May 2011??
    4. 4. Mono for Android System Req's <ul><li>To play in the simulator ( FREE ) </li></ul><ul><ul><li>Mac OSX with MonoDevelop OR Windows (VisualStudio 2010 or MonoDevelop) </li></ul></ul><ul><ul><li>Oracle's Java SDK </li></ul></ul><ul><ul><li>Google's Android SDK </li></ul></ul><ul><ul><li>Mono for Android Trial (and MonoDevelop IDE) </li></ul></ul><ul><li>To get onto a device </li></ul><ul><ul><li>Mono for Android Prof or Enterprise license (USD399+) </li></ul></ul><ul><li>To get onto Android Market </li></ul><ul><ul><li>Google Developer account (USD25) </li></ul></ul>
    5. 5. //TODO: <ul><li>Activity </li></ul><ul><ul><li>OnCreate </li></ul></ul><ul><ul><ul><li>SetContentView and FindViewById<T> </li></ul></ul></ul><ul><li>/layout/ , /res/ and R esources </li></ul><ul><li>AndroidManifest.xml </li></ul><ul><li>Application </li></ul><ul><ul><li>OnCreate </li></ul></ul><ul><li>Intent </li></ul><ul><ul><li>PutExtra() and GetStringExtra </li></ul></ul>
    6. 7. <ul><li>Activity Lifecycle </li></ul><ul><li>Active/running </li></ul><ul><li>Paused </li></ul><ul><li>Stopped </li></ul><ul><li>Killed/shutdown </li></ul><ul><li>You should always call up to your superclass when implementing these methods </li></ul>
    7. 8. Details! <ul><li>Debugging </li></ul><ul><li>Linking </li></ul><ul><li>UI </li></ul><ul><ul><li>iOS </li></ul></ul><ul><ul><li>Android </li></ul></ul><ul><li>Navigation </li></ul><ul><li>Databinding </li></ul><ul><li>F.A.Q. </li></ul>
    8. 9. Debugging <ul><li>'soft debugger' gets embedded in your app </li></ul><ul><ul><li>Can be configured (IP address, port) </li></ul></ul><ul><ul><li>Binaries are much larger (of course) </li></ul></ul><ul><li>Allows breakpoints, step-through, call stack </li></ul><ul><li>Works via TCP/IP, so you can debug the Simulator AND the device (untethered, so long as wifi is enabled). </li></ul>
    9. 10. Linking <ul><li>Mono compiler strips out unused classes/libraries </li></ul><ul><ul><li>Mobile devices – size matters! </li></ul></ul><ul><ul><li>Trap for young players: it might strip out stuff you want to keep! </li></ul></ul><ul><ul><ul><li>Classes/methods/properties used via Reflection </li></ul></ul></ul><ul><ul><ul><li>Classes/methods/properties used in serialization operations </li></ul></ul></ul><ul><li>By default it's disabled in DEBUG, so stuff will work there and mysteriously break in RELEASE [ Preserve (AllMembers = true )] </li></ul>
    10. 11. Navigation <ul><li>Getting from screen to screen </li></ul><ul><li>StartActivity() </li></ul><ul><li>Intent </li></ul><ul><ul><li>SetClass typeof(AnActivity) </li></ul></ul><ul><ul><li>PutExtra </li></ul></ul><ul><ul><li>Can also 'trigger' other applications </li></ul></ul><ul><li>PushViewController() </li></ul><ul><li>UIViewController </li></ul><ul><ul><li>Subclass and pass instance </li></ul></ul><ul><li>… also UITabBar items </li></ul>
    11. 12. Databinding (lists) <ul><li>More work that you are used to... </li></ul><ul><li>BaseAdapter </li></ul><ul><ul><li>GetView </li></ul></ul><ul><ul><li>Count </li></ul></ul><ul><ul><li>GetItem </li></ul></ul><ul><ul><li>(.ItemClick is attached to the ListView itself) </li></ul></ul><ul><li>UITableViewSource </li></ul><ul><ul><li>GetCell </li></ul></ul><ul><ul><li>RowsInSection </li></ul></ul><ul><ul><li>RowSelected </li></ul></ul>
    12. 13. 'translation'
    13. 14. Example: RestGuide Runs on Android, iOS and Windows Phone 7 github.com/conceptdev
    14. 15. Example: MIX11 Runs on Android, iOS and Windows Phone 7 mix11.confapp.com
    15. 16. Any questions?
    16. 17. Professional iPhone w/ MonoTouch

    ×