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
Transcript
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. 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. 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. App Studio Version released Follow @raygunio on Twitter and
check out raygun.io
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. 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. 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. iOS Promo Draft Follow @raygunio on Twitter and check out
raygun.io
9. Native apps vs Hybrid apps? Follow @raygunio on Twitter and
check out raygun.io
10. 95% code sharing Xamarin Forms Follow @raygunio on Twitter
and check out raygun.io
11. Xamarin Forms Project Structure Follow @raygunio on Twitter
and check out raygun.io
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. 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. Android Settings Follow @raygunio on Twitter and check out
raygun.io
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. 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. 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. 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. XAML Follow @raygunio on Twitter and check out
raygun.io
20. Phone, Tablet, Portrait and Landscape Follow @raygunio on
Twitter and check out raygun.io
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. 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. Dependency Injection Follow @raygunio on Twitter and check
out raygun.io
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. How did I improve app quality? Follow @raygunio on Twitter
and check out raygun.io
26. Find bugs before my users do Follow @raygunio on Twitter
and check out raygun.io
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. Raygun Platforms Follow @raygunio on Twitter and check out
raygun.io
29. Raygun Dashboard Follow @raygunio on Twitter and check out
raygun.io 180 day retention period
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. Integrations Follow @raygunio on Twitter and check out
raygun.io
32. If an error is serious, you will know Follow @raygunio on
Twitter and check out raygun.io
33. Global Dashboard Follow @raygunio on Twitter and check out
www.raygun.io
34. Affected Users Follow @raygunio on Twitter and check out
raygun.io
35. Stack Trace is worth Gold Follow @raygunio on Twitter and
check out raygun.io
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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