160 likes | 286 Views
Pocket Brewer. On hand tools for the average homebrewer . What’s This Presentation. Wayne Odom – I program. Show and Tell Code & things that I think are helpful Marketplace & Submission Issues Promotional & Advertising Website Integration Competition Issues Probably 50% Correct at Best.
E N D
Pocket Brewer On hand tools for the average homebrewer.
What’s This Presentation • Wayne Odom – I program. • Show and Tell • Code & things that I think are helpful • Marketplace & Submission Issues • Promotional & Advertising • Website Integration • Competition Issues • Probably 50% Correct at Best
What’s the app do? • Beer brewing assistant. • Does not teach you how to brew beer. • Conversions and Calculations. • Build Recipes using common database. • Import/Export/Share • Nothing Innovative. All done before.
How Project Went Started • Got bored one Friday in December. • Purchased Phone • Create.msdn.com • Install SDK • http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27570 • Silverlight toolkit for wrap panel, Combo box • silverlight.codeplex.com • Windows Phone Developer Tools • http://www.microsoft.com/download/en/details.aspx?id=13890 • File->New Project -> Pivot Application • Easy Enough So Kept Going (Unlike Droid)
Navigation • NavigationService object • Added NavPage to ItemViewModel • Embrace NavigationService.Back() • Icons (as content) • C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1 • Override OnNavigatedTo and OnNavigatedFrom • Query Strings
Query String Code if (NavigationContext.QueryString.ContainsKey("Source")) { string source = NavigationContext.QueryString["Source"].ToString(); NavigationService.Navigate(new Uri("/Page.xaml?Source=" + source, UriKind.Relative)); }
View Models & Item Templates • Google Windows Phone 7 MVVM • Started Writing View Models For Everything. • Tedious Tombstoning– Easier to store objects than text box values.
Data Storage • Pocket Brewer Data = collection of the most common ingredients in text files. • Storage is isolated storage • Serialization/Deserialization of Objects as XML • Tombstoning
Isolated Storage & Serialization Code using (var store = IsolatedStorageFile.GetUserStoreForApplication()) { if (store.DirectoryExists(“dir/r")) { using (var stream = new IsolatedStorageFileStream(" dir/r /tombstonerecipeclass.txt", FileMode.OpenOrCreate, FileAccess.Read, store)) { using (var reader = new StreamReader(stream)) { varserializer = new XmlSerializer(typeof(RecipeClass)); return reader.EndOfStream ? new RecipeClass() : (RecipeClass)serializer.Deserialize(reader); } //end using } //end using } //end if } //end using
More Better SQL Available • September 23, 2011 • http://msdn.microsoft.com/en-us/library/hh202872(v=VS.92).aspx • http://msdn.microsoft.com/en-us/library/hh202860(v=VS.92).aspx • Local Database in Isolated Storage Now Available. $#!#
Supporting Website • Wordpress.org = Free Software • Wordpress.com = Sort of free but not really. • Beer Recipes Functionality • Feeds Recipe Import • Search Engine Traffic = Later Opportunities in Ad Sales (Adsense) • Google Analytics = Free • http://www.google.com/analytics/ • User Interaction – BeerXML, Timers • Godaddy < $5 Hosting/Month Hosting. $12 Domain. cpwebhosting.com ($1.50 month)
BeerXML & Shared Recipes • Not a service. • Imports From The Web Browser Control • Shared via email, website, other websites. • http://Pocketbrewer.com/recipes/ • http://www.brew-monkey.com/recipes/recipes.php • http://www.homebrewtalk.com/f62/black-widow-kolsch-224791/ • http://www.beerxml.com/
Using Web Browser private void WebsiteSelect_SelectionChanged(object sender, SelectionChangedEventArgs e) { UriDisplayClass target = WebsiteSelect.SelectedItem as UriDisplayClass; webBrowserImport.Source= target.UriTarget; } private string _webBrowserContent; private void webBrowserImport_LoadCompleted(object sender, NavigationEventArgse) { PageTitle.Text = "Recipe Import"; _webBrowserContent = webBrowserImport.SaveToString(); }
Marketplace Submission • Denied due to Navigation • Denied due to forgetting About Page • Final Publish to Marketplace Delay. Support for help after two weeks.
Free Competition vs Paid App • First to market = 30 downloads/monthly • First Free App = 15 downloads/monthly • Second Free App = < 10 downloads/monthly • Going Trial? Limit import/export to 1. • Silver Line: Sales better since Mango.
Thanks! • http://www.wayneodom.com/ • http://www.pocketbrewer.com/ • wayne@wayneodom.com