john: hey, everyone. john sonmez from simpleprogrammer.comand today, i do not have an inspirational video for you. that’s right. i'm going tobe talking about a technical topic, one that, i think, is really important that’s prettyrelevant on a lot of people’s minds today. that’s right. i'm going to be talking crossplatform mobile development, and i'm going to share with you some of my thoughts aroundthis area and some of the techniques you can
Android java 8, use to be successful if you’re trying tocreate a mobile application and you want it to be cross platform.cross platform mobile development. what does this mean? basically, hey, let’s say thatyou’re trying to build an app, right? what do you do? your first step is you got to say,“well, what am i going to build this for?
am i going to build this for ios? what aboutandroid or am i going to touch windows phone even if it has a small market share? whatam i going to build this for? am i still going to try and do blackberry?†i hope not.basically for the most part, most developers, most companies considering this choice arebasically choosing between, “should i do android or ios, or i should do this nativeand should i create a web version of this application, or even try to go to the windows8 platform for this?†how do you decide? well, let’s talk about the different optionsand i’ll give you an idea of what i think is the best way to go today.first of all, you have native. now, if you go native here’s the thing. for ios, you’regoing to be developing an objective c. you’re
going to be using the cocoa frameworks andyou’re going to be developing on a mac. for android, you’re going to be doing javaand you can develop mac or windows, but you’re probably going to be using an emulator. yourcode bases are not going to be shared. this is something really important to consider.now when you go native, you’ll of course have all of the native ui elements. you’reable to make an application that feels like an application for that platform. that’swhy a lot of times people choose to go native. you can hit the 2 biggest markets if you justdid ios and android. if you’re doing a paid type of application, if you just hit ios,that’s an option that a lot of people start with. it’s just hitting ios. that sometimesmakes sense.
that’s option 1. option 2 is to do somethingin between native and let’s say full html or full cross platform. one option in thereand this is the one that i’d probably recommend the highest is the xamarin tools. xamarintools let you write an android and an ios application in c#. you can use the portableclass libraries in c# to make a lot of your code portable so you could reuse some of thatcode. now, the difference here between native and xamarin is small because xamarin justsits on top of these native apis and it basically just gives you a c# way of writing this code.there’s a little bit more going on under the cover, but you’re still using the nativecontrols. it’s still very much native at the end even though you’re using this otherlayer and this other tooling to do this. then
you can go up from there and there’re acouple of other things that are in between here. you have things like titanium. you’vegot things like phonegap where you could actually build a hybrid application. that’s goingmore towards this html5. we can traverse all the way down the path to html5.you can build an html5 application and you could basically host it on your website, andyou can make it work on the mobile platforms. maybe you could use something like kendo uifrom telerik or sencha touch. then what you would have is basically an html5 applicationthat’s responsive and works on the different mobile platforms. if you wanted to make aninstaller and application, you could wrap this with something like phonegap and thenit would basically just wrap that native or
that html5 application.those are your choices, and here’s the pros and cons when you’re thinking about thischoice. if you go full native, you’re probably going to get the closest to that platform’sexperience, but you’re going to need experience and tools, and developers that can write inthose platforms. writing objective c, if you’ve never done it before, is not that easy. there’sa big learning curve there. even on the java side and working in android, there’s a learningcurve there as well. if you do want to touch windows phone, then that’s a whole anotherplatform or if you want to go windows 8, that’s a whole another platform.if you go the full html route, right now i don’t think we’re there yet. i think we’regoing to be there. i think things like firefox
os are going to drive us forward, and as phonesand tablets become more powerful that we’ll eventually want to go full html5 on the mobileplatforms. but we’re not quite there. right now, the experience is still a little bitcrippled. it’s still a little bit hard to get things to work on each of the devicesthat look right, and there’s a little bit of lag. things are not as fast. they’renot quite as performing as when you go native. now if we take a hybrid approach and thisis the one that i recommend right now. for most developers, especially the ones thatare watching this video because i know a lot of you are probably c# and .net guys, youprobably are going to be doing best by doing xamarin. because the thing about xamarin andthe reason why i like it so much is that you
can write one language, c# and then you canbasically use portable class libraries to share a lot of your code. if you use somethinglike mvvmcross, mvvmcross is basically another library that works with xamarin, it can allowyou to use up to 90 or more percent of your code, where the only thing that’s differentbetween the different platforms is just the views.i definitely would lean towards the xamarin route. you still have to learn the nativeapis so you’re still going to have to learn ios development and android development, andwindows phone or windows 8 development, but you’re going to be able to share a lot ofthe code. you’re going to be able to basically write in one programming language insteadof trying to spread it out and trying to learn
all these different programming languagesand not be able to share any code. then you’re not going to have the problems that you dowith html5. that’s my advice for now. i think in thefuture it’s going to change. like i said, i think we’re going to go more into html5.i think that’s going to become more of a viable option. right now, i would stick witheither going native or using something like xamarin, and possibly using something liketitanium where you are writing javascript code that ends up getting compiled down tonative. of the two, of titanium and xamarin, right now my bet is on the xamarin side. thereare a lot of great things coming from xamarin. i'm not plugging. i'm not affiliated withxamarin in any way. i am an insider on their
program, but i don’t get paid to promotethem. i just happen to like the tools. if you like this video, if you thought this wasuseful don’t forget to subscribe to my channel. check out my blog at simpleprogrammer.com.i also have some videos on pluralsight, not just on xamarin but i have some videos onios, on android development natively. i have
xamarin videos on how to develop with xamarinand then i have videos on titanium, and even firefox os. a whole bunch of different mobilethings in cross platform development there, so don’t forget to check that out as well.i hope this was useful to you. take care, have a nice day and i will talk to you againnext week.