47
Rock'in with Russ, Raygun, Xamarin Forms and App Studio Follow @raygunio and @RussFustino on Twitter and check out raygun.io Russ Fustino, MVP and Raygun Community Evangelist

Rockin with Russ, Raygun, Xamarin Forms and App Studio

Embed Size (px)

Citation preview

  1. 1. Rock'in with Russ, Raygun, Xamarin Forms and App Studio Follow @raygunio and @RussFustino on Twitter and check out raygun.io Russ Fustino, MVP and Raygun Community Evangelist
  2. 2. A little about me Follow @raygunio on Twitter and check out raygun.io Raygun Community Evangelist Former Developer Evangelist for Microsoft, Xamarin and ComponentOne CEO, Fustino Brothers, Inc Publisher of Several Windows 8, Windows Phone 8, iOS, and Android Apps MVP Microsoft Platform Developer Publisher of Jethro Tull App, Endorsed
  3. 3. What a journey this has been! Follow @raygunio on Twitter and check out raygun.io From this on Sept 23, 2012: To this May 7, 2015:To this on Nov 1, 2014:
  4. 4. App Studio Version released Follow @raygunio on Twitter and check out raygun.io
  5. 5. What were the Challenges? Follow @raygunio on Twitter and check out raygun.io What can I salvage from the Windows App Studio Version? Windows version had Carousel navigation, how about iOS and Android? Windows version handled images automatically Background Image on ContentPage does not work, stretched on Android Xamarin Forms WebView Control did not have a enable JavaScript property File IO was in a different project location for each platform and had multiple copies of each image How to leverage XAML for Phone vs Tablet and Portrait vs Landscape? Most of the components in the store were for iOS an Android, but not XF? How would I know if my app is crashing and what it was from?
  6. 6. Agenda Follow @raygunio on Twitter and check out raygun.io App Studio What could I salvage for cross platform? Xamarin Forms: Navigation Images Custom Renderers Embedded Resources XAML, Building for Phone and Tablet Third party controls and plugins Dependency Injection Submission Challenges Improving app quality by using Raygun Error reporting
  7. 7. What did I salvage from App Studio? Follow @raygunio on Twitter and check out raygun.io Not much code App studio contained DLLs that had Namespaces other than System. These are not cross platform. Data for Discography, Links, Fan Videos, Official Videos Converted data source in code Json to external file XML Created Excel Spread sheets for each with an Export to XML plugin Excel 2003 Add-in: XML Tools Add-in http://www.microsoft.com/en-us/download/details.aspx?id=3108 For more info use excel help and search on XML Export Add-in
  8. 8. iOS Promo Draft Follow @raygunio on Twitter and check out raygun.io
  9. 9. Native apps vs Hybrid apps? Follow @raygunio on Twitter and check out raygun.io
  10. 10. 95% code sharing Xamarin Forms Follow @raygunio on Twitter and check out raygun.io
  11. 11. Xamarin Forms Project Structure Follow @raygunio on Twitter and check out raygun.io
  12. 12. How are we going to Navigate in this App? Follow @raygunio on Twitter and check out raygun.io Download Forms Gallery Demo on Xamarin Site
  13. 13. Images Follow @raygunio on Twitter and check out raygun.io Android version choked using image cell and large images for thumbnails Use Aspect=AspectFit, AspectFill or Fill property on Image control Use small images for Thumbnails - Discography, ListView was dying in Android Expand Java Heap to 1G in Android project settings Thin out all images (save as web) Make all images .PNG because they are optimized in iOS
  14. 14. Android Settings Follow @raygunio on Twitter and check out raygun.io
  15. 15. Images as Embedded Resources Follow @raygunio on Twitter and check out raygun.io Make as many images as embedded as you can, this reduces the number of places for same image in the project from 3 to 1 What a difference this made on speed Downside: Made the app too big (over 90 Meg for Android and over 120 Meg for iOS) Anything over 50 Meg for Android on Google Play, needs expansion files for submission Anything over 100 Meg for iOS will not install over Cellular, just Wi-Fi We ended up moving most of the images to a server for the Discography Details. This got the app down to around 25 meg for Android and 50 meg for iOS.
  16. 16. Background image solved! Follow @raygunio on Twitter and check out raygun.io This link was our saving grace for the stretched and tiled background image problems we were seeing. http://java.dzone.com/articles/using-full-size-none- stretched Portrait and Landscape solved
  17. 17. Custom Renderers Follow @raygunio on Twitter and check out raygun.io Custom renderers extend the control to platform specific use Example of Custom renderer I updated this forum post w my sample.. https://forums.xamarin.com/discussion/21784/xamarin-forms-webview- control-in-windows-phone-8-1-app iOS url with % formatting like the amazon searches was not working in iOS to the native browser, but it works in the WebView! Adding back button support in Android now Does not integrate with YouTube nor Flick nor Twitter Apps via URL. ITunes it does.
  18. 18. XAML Follow @raygunio on Twitter and check out raygun.io Table and Phone view in the same set of XAML I realized you could not have more than one view for a context page StackPanels within a StackPanel or Grid is fine, you just cant have multiple root views
  19. 19. XAML Follow @raygunio on Twitter and check out raygun.io
  20. 20. Phone, Tablet, Portrait and Landscape Follow @raygunio on Twitter and check out raygun.io
  21. 21. Android Tablets Follow @raygunio on Twitter and check out raygun.io Does this really work for Android tablets? if (Device.Idiom == TargetIdiom.Tablet) It did not, for Nexus 7 and 9 emulators as well as a Toshiba 7inch AT7-C Tablets that did work : HP 10 Plus 10.1-Inch 16 GB Tablet (Silver) Kindle Fire 7 inch Tablet, displays as Tablet too. You need 10 and 7 inch screen shots for submitting apps, and there are no emulators of that size that I could find.
  22. 22. Third Party Controls/Plugins Follow @raygunio on Twitter and check out raygun.io Xamarin Plugins: https://github.com/jamesmontemagno/Xamarin.Plugins Mr. Gestures on NuGet http://mrgestures.com/
  23. 23. Dependency Injection Follow @raygunio on Twitter and check out raygun.io
  24. 24. Submission Challenges Follow @raygunio on Twitter and check out raygun.io Android Google Play Need to use Android in app purchase process for payments Amazon Store Need to provide proof we had the rights to use Jethro Tull as the name of the app. iOS App Store We had to remove all competitive platforms for Music. Only iTunes is available. Had to remove Xbox, Google Play, Amazon Music. App Store We had to remove use of Apple Logo and iTunes Logo as part of our design iOS Xamarin instructions have been updated iOS approval is slow 7-10 days!
  25. 25. How did I improve app quality? Follow @raygunio on Twitter and check out raygun.io
  26. 26. Find bugs before my users do Follow @raygunio on Twitter and check out raygun.io
  27. 27. Why is this important? Follow @raygunio on Twitter and check out raygun.io Did you ever send screenshots? Its only part of the story. Real Time Notifications, Saves Time Saves Money Retain customers Convert trials Only 1% of your users even tell you that something is wrong If I only had stack trace, that would be gold Error grouping is essential, provides sanity for not exploding my inbox email Bottom line I need to improve developer productivity and reduce cost
  28. 28. Raygun Platforms Follow @raygunio on Twitter and check out raygun.io
  29. 29. Raygun Dashboard Follow @raygunio on Twitter and check out raygun.io 180 day retention period
  30. 30. Grouping on Errors Follow @raygunio on Twitter and check out raygun.io Its not the message that counts, its the cause Use stack trace data to group Raygun tends to err on side of the error not in the same group You can merge groups. IE, stack traces are different, but its the same underlining problem
  31. 31. Integrations Follow @raygunio on Twitter and check out raygun.io
  32. 32. If an error is serious, you will know Follow @raygunio on Twitter and check out raygun.io
  33. 33. Global Dashboard Follow @raygunio on Twitter and check out www.raygun.io
  34. 34. Affected Users Follow @raygunio on Twitter and check out raygun.io
  35. 35. Stack Trace is worth Gold Follow @raygunio on Twitter and check out raygun.io
  36. 36. Summary Follow @raygunio on Twitter and check out raygun.io Navigation Images Custom Renderers Embedded Resources XAML Third party controls and plugins Building for Phone and Tablet Dependency Injection Find bugs before your users do! Dashboard Affected Users
  37. 37. Resources Follow @raygunio on Twitter and check out raygun.io Xamarin www.Xamarin.com Raygun www.Raygun.io Xamarin Forms: http://xamarin.com/forms Windows App Studio: http://appstudio.windows.com If you liked this session: @RussFustino @Raygunio
  38. 38. Resources Follow @raygunio on Twitter and check out raygun.io Some useful plugins for Xamarin (Device, Settings, etc..): https://github.com/jamesmontemagno/xamarin.plugins Affected user tracking: https://github.com/MindscapeHQ/raygun4net#affected-user-tracking Tags: https://github.com/MindscapeHQ/raygun4net#tags-and-custom-data .NET Platforms: https://raygun.io/docs/languages/net
  39. 39. Resources continued Follow @raygunio on Twitter and check out raygun.io Language support: https://raygun.io/docs/languages Plugins: https://raygun.io/docs/plugins/ Workflow: https://raygun.io/docs/workflow/ Raygun blog: https://raygun.io/blog/ Case Studies: https://raygun.io/blog/case-studies/ Dependency Injection: http://developer.xamarin.com/guides/cross-platform/xamarin- forms/dependency-service/
  40. 40. Xamarin Updated Publishing Follow @raygunio on Twitter and check out raygun.io Publishing IOS: (uses app uploader now) http://developer.xamarin.com/guides/ios/deployment,_testin g,_and_metrics/app_distribution_overview/publishing_to_the _app_store/ Common Bug on IOS Publishing https://forums.xamarin.com/discussion/40388/disallowed- paths-itunesmetadata-plist-found-at-when-submitting-to-app- store/p1 Publishing Android http://developer.xamarin.com/guides/android/deployment,_t esting,_and_metrics/publishing_an_application
  41. 41. Resources Follow @raygunio on Twitter and check out raygun.io Xamarin Forms Gallery (Navigation) http://developer.xamarin.com/guides/cross- platform/xamarin-forms/controls/pages/ What is a Xamarin plugin? http://motzcod.es/post/104507063997/what-exactly-is-a- plugin-for-xamarin How to create a plugin? http://blog.xamarin.com/creating-reusable-plugins-for- xamarin.forms/ 302 Error on Tour dates feed Bugzilla https://bugzilla.xamarin.com/show_bug.cgi?id=27265
  42. 42. Resources Follow @raygunio on Twitter and check out raygun.io Mr. Gestures on NuGet http://mrgestures.com/ Background images that dont stretch http://java.dzone.com/articles/using-full-size-none-stretched Circle Images https://www.nuget.org/packages/Xam.Plugins.Forms.ImageCir cle XAML View for Custom Cells https://gist.github.com/jamesmontemagno/a70ffa4a3d16972 a3369
  43. 43. Resources Follow @raygunio on Twitter and check out raygun.io HP 10 Plus 10.1-Inch 16 GB Tablet (Silver) - $239 http://www.amazon.com/HP-Plus-10-1-Inch-Tablet- Silver/dp/B00LPC3W1Q/ref=sr_1_1?ie=UTF8&qid=143150340 2&sr=8-1&keywords=HP+10+Plus+10.1- Inch+16+GB+Tablet+%28Silver%29
  44. 44. Resources Follow @raygunio on Twitter and check out raygun.io Excel 2003 Add-in: XML Tools Add-in http://www.microsoft.com/en- us/download/details.aspx?id=3108 Good link for splash screen on android: http://forums.xamarin.com/discussion/19362/xamarin-forms- splashscreen-in-android For the Build/iOS Bundle Signing set "Identity: Developer (Automatic)" and "Provisioning Profile: Automatic". Was getting error cant find in keychain http://forums.xamarin.com/discussion/25768/iphone-code- signing-key-other-developer-name-xxxxx-not-found-in- keychain
  45. 45. Resources Follow @raygunio on Twitter and check out raygun.io Android https://developers.google.com/android-publisher/ http://www.appbrain.com/stats/android-market-app-categories https://play.google.com/about/developer-content-policy.html https://support.google.com/googleplay/android- developer/answer/113474 IOS https://developer.apple.com/app-store/review/guidelines/ https://developer.apple.com/app-store/ https://developer.apple.com/library/ios/documentation/LanguagesUtili ties/Conceptual/iTunesConnect_Guide/Appendices/Properties.html#//a pple_ref/doc/uid/TP40011225-CH26-SW2
  46. 46. Resources Follow @raygunio on Twitter and check out raygun.io Publishing IOS: http://developer.xamarin.com/guides/ios/deployment,_testin g,_and_metrics/app_distribution_overview/publishing_to_the _app_store/ Common Bug on IOS Publishing https://forums.xamarin.com/discussion/40388/disallowed- paths-itunesmetadata-plist-found-at-when-submitting-to-app- store/p1 Publishing Android http://developer.xamarin.com/guides/android/deployment,_t esting,_and_metrics/publishing_an_application/
  47. 47. Resources Follow @raygunio on Twitter and check out raygun.io Android in app billing:(Which has a sample app) http://components.xamarin.com/view/xamarin.inappbilling Dependency service: http://developer.xamarin.com/guides/cross-platform/xamarin- forms/dependency-service/ Getting Started Xamarin.InAppPurchase: https://components.xamarin.com/gettingstarted/xamarin.inapppurchase Email validation http://blog.xamarin.com/behaviors-in-xamarin.forms/ Plug-ins https://github.com/jamesmontemagno/Xamarin.Plugins