>Get someone who's been in the trenches to show you how to layout a solution or study open source code. Can you (or anyone) suggest a good open source project done in Xamarin ?
On Fri, Oct 24, 2014 at 4:08 PM, Geoffrey Huntley <[email protected]> wrote: > @rid00z is right on the money. > > Xamarin makes perfect sense in the enterprise market and allows the > existing base of .NET developers to become mobile developers as long as > they are not completely clueless (ie: SOLID fundamentals/DI/IoC/Interfaces) > > Business sense due to code sharing and being able to ensure feature > release unity between multiple platforms with minimal effort and also > allows business to hedge/protect their investment against how fast the > consumer world is moving and eliminate platform lock-in. > > Developer wise, yes there is a learning cliff and properly architecting > software/solution is of the upmost importance. > > My advice is either study code on GitHub, attend a meet up or signup for > Xamarin university. > > Definitely start with a single platform as there is > iOS/Android/WindowsPhone domain knowledge that must be learnt. This caused > some issues for early adopters and or some issues for junior developers who > may not be comfortable reading examples in Java or ObjectiveC and > translating them back into .NET. > > This is over the last year has dramatically became better due to high > quality blog posts, stackoverflow, GitHub and xamarin evolve videos/xamarin > university. > > Get someone who's been in the trenches to show you how to layout a > solution or study open source code. > > a) Portable Class Libraries (Profile78) > > Provides constraints that force proper architecture up front to push > platform specific implementations away from the core (ie: Logic to dial a > ph# is different on each platform) > > This is done by barebones interface in the core project and a per platform > implementation of that interface. > > Ie. ITelephonyService > - MakePhoneCall(string number) > - SendSMS(string number, string message) > > Use profile78 or profile158 (I use 78) > > This is my default route on a long term engagement, especially if there > are juniors involved. Prevents some bad code smells from getting in the > door. > > > b) File Linking > > Great for a quick throwaway application/hackathon as it allows you to not > worry about architecture and get shit done. > > Downsides include drowning in LOTS of #ifdef /fast/ unless you separate > code via partial classes in core project with platform implementation via > extending the partial classes. > > c) Shared Project > > Has downsides that it really interferes with XAML namespace resolution in > Expression Blend / Visual Studio on Windows Phone. Single namespace.... > > Regards, > Geoff > 0404654654 > > Sent from my iPhone > > On 24 Oct 2014, at 5:07 pm, Michael Ridland <[email protected]> wrote: > > > Sorry to spam, I get excited and passionate sometimes! :) > > > On Fri, Oct 24, 2014 at 4:40 PM, Michael Ridland <[email protected]> wrote: > >> >> Nice blog post... but if they had just used Xamarin their job would have >> been alot easier. >> >> They wouldn't of had to write their own persistance layer, with Xamarin >> you can use the Native SQLite instances. Their serious backend code eg >> Offline, Caching, would have been able to use C# and the full .net >> framework. >> >> Actually the project I'm working on at the moment is more complicated >> than the dropbox app, more feature with offline support etc.... and I've >> been able to implement as a single developer... >> >> For serious applications Xamarin is hands down the best! >> >> >> >> >> >> >> >> >> >> >> >> >> >> On Fri, Oct 24, 2014 at 4:29 PM, William Luu <[email protected]> wrote: >> >>> On a related note, Dropbox used C++ for their Android/iOS apps - >>> http://oleb.net/blog/2014/05/how-dropbox-uses-cplusplus-cross-platform-development/ >>> >>> >>> On 24 October 2014 15:22, Michael Ridland <[email protected]> wrote: >>> >>>> >>>> http://ionicframework.com/ >>>> >>>> >>>> On Fri, Oct 24, 2014 at 3:22 PM, Michael Ridland <[email protected]> >>>> wrote: >>>> >>>>> >>>>> ... but that said, Xamarin is pretty heavy weight, it's s big learning >>>>> curve.. if you want something lightweight and 'pretty' good you should try >>>>> out Ionic... >>>>> >>>>> >>>>> >>>>> >>>>> On Fri, Oct 24, 2014 at 3:19 PM, Michael Ridland <[email protected]> >>>>> wrote: >>>>> >>>>>> >>>>>> Go Xamarin it's the best! (Opinion may be bias www.michaelridland.com >>>>>> ) >>>>>> >>>>>> Traditional Xamarin (Native API) as the platform is awesome and solid >>>>>> and fast, the IDE and some of the tools around it can be a bit buggy. >>>>>> Xamarin.Forms is pretty early, and can be frustrating but I have build >>>>>> some >>>>>> XPlat app pretty rapidly with it. >>>>>> >>>>>> Actually I'm doing a 'Introduction to Xamarin' at SydMobile in a few >>>>>> weeks, you should come along I'd love to answer any questions you have. >>>>>> http://www.meetup.com/SydMobile/ >>>>>> >>>>>> Below is a unpublished blog post on why you should use Xamarin... >>>>>> >>>>>> *Should I use Xamarin for Mobile Development? YES you should!* >>>>>> >>>>>> In my opinion you'd be insane if you didn't use Xamarin for mobile >>>>>> development. Many people don't know what they're missing out on by not >>>>>> using Xamarin so I'm going to highlight some reasons I think people >>>>>> should be using Xamarin. >>>>>> 1) It's Native but with 80%+ code share? >>>>>> >>>>>> So for those that aren't aware of Xamarin or how it works, Xamarin allows >>>>>> you to develop apps for iOS, Android and Mac from a single code base. >>>>>> When >>>>>> I say this I don't mean in a webview or customised API, it actually >>>>>> usesthe Native APIs. So when developing you use UITableView which is >>>>>> the same API that a native developer would be using. >>>>>> 2) C# and F# are Modern languages >>>>>> >>>>>> C# might not be the hipster language of the year it is a continually >>>>>> evolving language with solid features like type interference, dynamic >>>>>> types, language integrated query (LINQ), async/await and first class >>>>>> functions. C# is designed for developing large robust applications. >>>>>> >>>>>> And for the functional types there's F#, which from what I've been >>>>>> told it's like scala but faster and better thought out. >>>>>> >>>>>> I'd argue they're better languages than java, javascript and >>>>>> objective-c... and seeing that they're currently the only languages with >>>>>> built in async you could say their even better than swift... >>>>>> 3) async/await >>>>>> >>>>>> .. 'wait but javascript is all async' i hear you say... C#/F# >>>>>> async/await is different to what people normally think async is. C#/F# >>>>>> async/await tackles the callback hell problems in rich clients, anyone >>>>>> who >>>>>> works with rich clients will know of these problems. This is a problem >>>>>> that's attempted to be solved with promises and generators but neither >>>>>> are >>>>>> at the level of async/await. >>>>>> >>>>>> Here's a little before/after sample: >>>>>> >>>>>> *Before:* >>>>>> >>>>>> doAsync1(function () { >>>>>> >>>>>> doAsync2(function () { >>>>>> >>>>>> doAsync3(function () { >>>>>> >>>>>> doAsync4(function () { >>>>>> }) >>>>>> }) >>>>>> }) >>>>>> }) >>>>>> >>>>>> *After:* >>>>>> >>>>>> await doAsync1() >>>>>> await doAsync2() >>>>>> await doAsync3() >>>>>> await doAsync4() >>>>>> 4) Watches, Google Glass wearables and the future of devices. >>>>>> >>>>>> In case you haven't noticed the future isn't just mobiles it's >>>>>> wearables, devices and IOT. Xamarin has same day support for all >>>>>> these platforms including android wear, google glass, Amazon TV and more. >>>>>> As I've said beforeXamarin uses the Native APIs and compiles down to >>>>>> native so using Xamarin you're in the perfect position develop all >>>>>> modern platforms. >>>>>> 5) It's ready now! >>>>>> >>>>>> All the time I hear people say 'html is a fast moving target' or 'it >>>>>> will get there eventually'. Xamarin is here now, it's Native and >>>>>> it's cross platform. Why wait to have a great app when you can have it >>>>>> now >>>>>> and as a bonus know that your application is future proof for future >>>>>> devices. >>>>>> 6) It's fast and stable >>>>>> >>>>>> From personal experience the Xamarin traditional (Xamarin.iOS and >>>>>> Xamarin.Android) platform is solid, fast and stable. You'd be hard >>>>>> pressed to find a problem with the core parts of the platform, any app >>>>>> bugs >>>>>> will probably be your own bugs. >>>>>> 7) Documentation >>>>>> >>>>>> The documentation for Xamarin is solid, it's generally better than >>>>>> the Apple and Android documentation. >>>>>> 8) Xamarin.Forms >>>>>> >>>>>> So how about 100% codeshare and still be Native? Xamarin.Forms >>>>>> allows you to program against a single API and have that single API >>>>>> mapped >>>>>> to native controls on each platform. Hanselman describes it well, 'Write >>>>>> Once Run Everywhere AND Be Native'. >>>>>> >>>>>> It's still early days for the product but the top component >>>>>> developers like Telerik and DevExpress are already developing components >>>>>> for Xamarin.Forms. >>>>>> 9) It's the best of all worlds (Hybrid and Native) >>>>>> >>>>>> If you've taken a look at my Xamarin mashup blog >>>>>> <http://www.michaelridland.com/mobile/asp-net-mvc-xamarin-mashups/> you'd >>>>>> already know that the possibilities with Xamarin are vast, you can >>>>>> essential create your own Cordova and you can completely integrate it >>>>>> with >>>>>> your C# Mvvm/c# Native Code. So you have the full power of the .net >>>>>> framework to build your client application architecture which becomes >>>>>> very >>>>>> useful when you have complex requirements like Offline. >>>>>> 10) Large Community >>>>>> >>>>>> Xamarin uses the .net framework and because of this it's inherited >>>>>> the pre-existing community, this means that even though it's a fairly new >>>>>> platform we already have support for Awesome projects like Json.net, >>>>>> Fody and ReactiveExtensions/ReactiveUI. >>>>>> 11) Profitable Innovative Company >>>>>> >>>>>> Xamarin as a company has a passion for enabling mobile developers to >>>>>> deliver leading experiences. Their products cost money Yes but it's good >>>>>> for us, I see many people complain about the pricing but Xamarin charging >>>>>> money for products allows them to put money back into building amazing >>>>>> products for us. This year at EvolveXamarin released some great new >>>>>> products, a Analytics Cloud Service, a faster Android emulator and a >>>>>> performance profiler. In the future Xamarin is on the rise and this >>>>>> means our tools are only going to get better and better. >>>>>> >>>>>> This is why I choose Xamarin and I think you should too.... >>>>>> >>>>>> If you have any questions regarding Xamarin or need any help please >>>>>> contact me I'm always happy to help. >>>>>> >>>>>> Thanks >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Fri, Oct 24, 2014 at 2:58 PM, Stuart Kinnear < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> I've got a bit of free time so I'm starting to play around with >>>>>>> mobile development and getting somewhat bewildered with the options >>>>>>> offered. >>>>>>> >>>>>>> The dream is to knock up a business style app that will allow >>>>>>> persistence of data to the local database eg. sqlite then a transfer to >>>>>>> a >>>>>>> base server. >>>>>>> >>>>>>> Looked at Android dev kit, and that is OK but of course that strikes >>>>>>> out Ios & Windows. >>>>>>> >>>>>>> Looked at PhoneGap/Cordova and got infuriated by the simple task of >>>>>>> posting data (jsonp is a bit of a security risk in my books) >>>>>>> >>>>>>> Early last year I did play with Xamarin and found it unstable, >>>>>>> crashing at a whim. Is it worth giving it another go, or should I just >>>>>>> suck >>>>>>> it up and work on platform specific development tools. >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> ----------------------------------------------------------------------------- >>>>>>> Stuart Kinnear >>>>>>> Mobile: 040 704 5686. Office: 03 9589 6502 >>>>>>> >>>>>>> SK Pro-Active! Pty Ltd >>>>>>> acn. 81 072 778 262 >>>>>>> PO Box 6082 Cromer, Vic 3193. Australia >>>>>>> >>>>>>> Business software developers. >>>>>>> SQL Server, Visual Basic, C# , Asp.Net, Microsoft Office. >>>>>>> >>>>>>> ----------------------------------------------------------------------------- >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>> >> >
