• Toolsets / Frameworks                            • Hybrid Applications              HTML5         • IntegratedPortabilit...
HTML5/JS/CSS3               C# / CLR Web Standard being         Desktop paradigm being  leveraged for mobile        leve...
Data Binding
Data Binding
xamarin.com/mobileapi
Xamarin.Mobile                               Compass +Contacts         Geolocation                   Camera   Notification...
ContentResolver content= getContentResolver();Cursor ncursor = null;try {    ncursor = content.query (ContactsContract.Dat...
ABAddressBookRef ab = ABAddressBookCreate();CFStringRef name = CFSTR ("Smith");CFArrayRef smiths = ABAddressBookCopyPeople...
var book = new AddressBook () {   PreferContactAggregation = true};foreach (Contact c in book.Where (c => c.LastName == "S...
Contacts List
http://www.unrealengine.com/udk/
IN THE SPOTLIGHT                                               THE WWE APP IS READY TO RUMBLE!                            ...
http://aka.ms/bostonmeetup
http://aka.ms/bostonmeetup
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Building your apps for cross platform compatability
Upcoming SlideShare
Loading in...5
×

Building your apps for cross platform compatability

381

Published on

Now with 3 App Marketplaces to sell your apps in, it's becoming more important to design and build your apps so that you can publish in all 3 markets without having to rebuild the entire app for each platform. In this session we will cover the pros and cons of HTML5/JS/CSS3 and C#/CLR.

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

  • Be the first to like this

No Downloads
Views
Total Views
381
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Building your apps for cross platform compatability

  1. 1. • Toolsets / Frameworks • Hybrid Applications HTML5 • IntegratedPortability • MS .Net C#/CLR • Xamarin Mono • Barebones access to C++ low level API’s Flexibility
  2. 2. HTML5/JS/CSS3 C# / CLR Web Standard being  Desktop paradigm being leveraged for mobile leveraged for mobile Performance hit from  Native execution model JavaScript execution for each platform Development tools are  1 Stack - Cloud to Device lacking, esp. Debugging
  3. 3. Data Binding
  4. 4. Data Binding
  5. 5. xamarin.com/mobileapi
  6. 6. Xamarin.Mobile Compass +Contacts Geolocation Camera Notifications Accelerometer
  7. 7. ContentResolver content= getContentResolver();Cursor ncursor = null;try { ncursor = content.query (ContactsContract.Data.CONTENT_URI, new String[] { ContactsContract.Data.MIMETYPE, ContactsContract.Contacts.LOOKUP_KEY, ContactsContract.Contacts.DISPLAY_NAME }, ContactsContract.Data.MIMETYPE + "=? AND " + ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME + "=?", new String[] { ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE, "Smith" }, null); while (ncursor.moveToNext()) { print (ncursor.getString(ncursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)) + lineSep); String lookupKey = ncursor.getString (ncursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY)); Cursor dcursor = null; try { dcursor = content.query (ContactsContract.Data.CONTENT_URI, new String[] { ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.Data.DATA1 }, ContactsContract.Contacts.LOOKUP_KEY + "=?", new String[] { lookupKey }, null); while (dcursor.moveToNext()) { String type = dcursor.getString (ncursor.getColumnIndex(ContactsContract.Data.MIMETYPE)); if (type.equals (ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)) print ("Phone: " + dcursor.getString(dcursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)) +lineSep); else if (type.equals (ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)) print ("Email: " + dcursor.getString(dcursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA1)) +lineSep); } } finally { if (dcursor != null) dcursor.close(); } }} finally { if (ncursor != null) ncursor.close();}
  8. 8. ABAddressBookRef ab = ABAddressBookCreate();CFStringRef name = CFSTR ("Smith");CFArrayRef smiths = ABAddressBookCopyPeopleWithName(ab, name);CFRelease (name); ABAddressBookRef ab = ABAddressBookCreate();int count = CFArrayGetCount(smiths); CFStringRef name = CFSTR ("Smith");for (int i = 0; i < count; ++i) { CFArrayRef smiths = ABAddressBookCopyPeopleWithName(ab, name); ABRecordRef person = (ABRecordRef)CFArrayGetValueAtIndex(smiths, (CFIndex)i); CFRelease (name); if (ABRecordGetRecordType(person) != kABPersonType) continue; int count = CFArrayGetCount(smiths); for (int i = 0; i < count; ++i) { NSString *name = (NSString*)ABRecordCopyCompositeName(person); ABRecordRef person = (ABRecordRef)CFArrayGetValueAtIndex(smiths, (CFIndex)i); NSLog ("%@n", name); if (ABRecordGetRecordType(person) != kABPersonType) [name release]; continue; ABMultiValueRef phoneNumberProp = ABRecordCopyValue(person, kABPersonPhoneProperty); NSString *name = (NSString*)ABRecordCopyCompositeName(person); NSLog ("%@n", name); NSArray* numbers = (NSArray*)ABMultiValueCopyArrayOfAllValues(phoneNumberProp); CFRelease(phoneNumberProp); [name release]; for (NSString *pvalue in numbers) ABMultiValueRef phoneNumberProp = ABRecordCopyValue(person, kABPersonPhoneProperty); NSArray* numbers = (NSArray*)ABMultiValueCopyArrayOfAllValues(phoneNumberProp); NSLog ("Phone: %@n", pvalue); CFRelease(phoneNumberProp); [numbers release]; for (NSString *pvalue in numbers) NSLog ("Phone: %@n", pvalue); ABMultiValueRef emailProp = ABRecordCopyValue(person, kABPersonEmailProperty); NSArray* emails = (NSArray*)ABMultiValueCopyArrayOfAllValues(emailProp); [numbers release]; CFRelease(emailProp); ABMultiValueRef emailProp = ABRecordCopyValue(person, kABPersonEmailProperty); for (NSString *evalue in emails) NSArray* emails = (NSArray*)ABMultiValueCopyArrayOfAllValues(emailProp); NSLog ("Email: %@n"); CFRelease(emailProp); [emails release];} for (NSString *evalue in emails)CFRelease (ab); NSLog ("Email: %@n");CFRelease (smiths); [emails release]; } CFRelease (ab); CFRelease (smiths);
  9. 9. var book = new AddressBook () { PreferContactAggregation = true};foreach (Contact c in book.Where (c => c.LastName == "Smith")) { Console.WriteLine (c.DisplayName); foreach (Phone p in c.Phones) Console.WriteLine ("Phone: " + p.Number); foreach (Email e in c.Emails) Console.WriteLine ("Email: " + e.Address);}
  10. 10. Contacts List
  11. 11. http://www.unrealengine.com/udk/
  12. 12. IN THE SPOTLIGHT THE WWE APP IS READY TO RUMBLE! ● Kevin Mills and Xudong He from UI Centric brought this app to life. ● App features: easy-to-explore bios, stunning designs, and unique interactions so that fans feel like theyre a part of the main event. ● Mills and He’s top tip: "Get familiar with the PlayerFramework. Think Lean. Load time and content caching are important."READY TO BUILD THE NEXT BIG APP? JOIN GENERATION APP FOR:● Tips and tricks on Windows 8 and Windows Phone app development.● 1:1 on-the-phone access to a Windows 8 and Windows Phone expert*.● An exclusive Windows UI style design consultation*.● An opportunity to test your app with qualified experts an App Lab. Sign Up at www.generationapp.com *See Ts&Cs on www.generationapp.com
  13. 13. http://aka.ms/bostonmeetup
  14. 14. http://aka.ms/bostonmeetup
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×