The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
I figured people would be interested, because - well, you know - the win 10 October update...
Nobody is interested in windows weekends.
Here’s a funny - I actually thought about os2 a couple of days ago.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
A couple of years ago I read* (skipped around for parts I needed) an older version of this book, when I was writing my first iOS app (C'YaPass[^]).
The reason I chose the book is because it is written with the same kind of detail that Charles Petzold wrote his Programming Windows(3.x and then 95) books in. You don't find many authors writing this way. Few books start at the beginning and continue from there smoothly.
I really like Mobile development (Android & iOS) and I believe the reason is because it takes me back to simpler times of WinForm development, MFC or WinAPI dev.
Why Not Xamarin? (Why Learn Native iOS?)
I have Visual Studio 2017 and I took a look at Xamarin again yesterday. A quick look but I still have all kinds of problems to overcome even just getting the Cross-Platform template project running. Studio had a real problem running the Android app on my emulator - never got it started. Then the UWP app wouldn't run properly either. I believe it was all due to a bad project name but it just annoyed me.
* This quote explains exactly my experience and why I've decided to commit to reading the latest edition from begin to end.
Preface (author says)
The widespread eagerness to program iOS, however, though delightful on the one hand, has also fostered a certain tendency to try to run without first learning to walk. iOS gives the programmer mighty powers that can seem as limitless as imagination itself, but it also has fundamentals. I often see questions online from programmers who are evidently deep into the creation of some interesting app, but who are stymied in a way that reveals quite clearly that they are unfamiliar with the basics of the very world in which they are so happily cavorting.
About five years ago, I took a serious look at Xamarin for a project. I found it half-baked with lots of promises from Xamarin. (Ended up using Qt, though the project was cancelled when negotiations were finalized with a previous vendor. Bummer for me, smart move for them.)
That last sentence applies to so many people who post here.
You mean this one from the author of the book, right?
I often see questions online from programmers who are evidently deep into the creation of some interesting app, but who are stymied in a way that reveals quite clearly that they are unfamiliar with the basics of the very world in which they are so happily cavorting.
It is an easy thing to fall into these days.
The Internet does provide a lot of help and samples, but it rarely provides a sense of the over all picture that is needed to really go deeper into things.
And the Internet has created a situation where many people believe they only want fast answers instead of the deeper information that will actually carry them further.
I read a great book about this which I definitely recommend (The Shallows: What the Internet Is Doing to Our Brains[^])
That book is not by a luddite. The author uses technology, but the funny thing is people who didn't complete the book review it and call him a luddite who just wants to destroy technology. In actuality he is just trying to point out that we do think differently because of the Internet.
Exactly. So many questions here are from people who can (just about) write some working code, but have no idea what it is actually doing or how it fits together, what the compiler does, etc. And in a few years they will be the ones writing the banking software (if they are not already doing it). I see that book is available on Kindle here in the UK, so another one to download.
I use Xamarin to build native Android apps using C#, because I have a lot of legacy well-tested production C# code that I can reuse with almost no modification. Besides, I love VS and prefer it to Android Studio. But I agree with you - using Xamarin Forms is not a substitute for knowing how to develop for the underlying mobile platforms you're targeting.
Then I tried to implement MVVM and it all fell apart with almost no indication why, sigh here we go again!
Perfect description of the situation!
Here's one I often encounter -- on all platforms and technologies* (seriously) Developer: Oh, I'll just implement the nifty little databinding here that the framework provides... Same Developer (much later):
Xamarin’s implementation in Visual Studio was a bit buggy - at first.
I use it now for Android, iOS, and UWP (there are still Windows tablets and laptops in wide usage).
I agree that to make good apps you need to understand the different platforms, but a good developer should learn that concurrent with the language platform.
Xamarin Forms in Visual Studio is a viable competitor - today - to Swift and Java, et al in anti-Microsoft land. The only remaining factor is the intelligence, experience, and discernment of the developer. And how much the developer likes maintaining different code bases for different OSs.
I'm still holding out hope for Xamarin in the future.
For now I'll probably keep learning native, because one thing I find is that when I do evaluate Xamarin each time it gets a bit better and I can also see the underlying native stuff there too.
I have worked on hybrid development before. The project was scrapped before launch as being not needed because the company had a mobile friendly website. This was before Xamarin was more than a beta. I looked at Xamarin as a solution then and didn't like. I have gone back recently and really don't see much that would change my mind. Unfortunately, some of the better hybrid solutions have died out and really, for Visual Studio, Xamarin has become the only option. Personally, if I had to choose between Xamarin and having to learn native development from scratch, I would go native as Xamarin just seems half baked and overly difficult.
The last time I looked, Xamarin doesn't produce XCode or Java directly, that makes it hybrid. Xamarin may produce native code as an output but it still isn't what I would consider native development. Similar points is that .Net code doesn't run on any mobile device that I know of. You produce the code in .Net and then it outputs what is needed for each of the different platforms. I am pretty sure that is the definition of hybrid development. Of course, maybe I have been wrong about the definition of hybrid development for years now.
Xamarin results in native code on each OS, though implemented differently on the device than if writing in Java or Swift. For goodness sakes, Xamarin uses XCode on a Mac when it compiles!
Hybrid mobile apps are those that have a host shell on the mobile device, but run mobile-friendly web apps. Part native, part web - hence, hybrid.
Xamarin at least uses the native UI controls. From what I have seen, a well-written Xamarin Forms app and a java on Android or Swift on iOS app would not perform with a difference a user would notice. And poorly-written apps in any language would run poorly.
Last Visit: 31-Dec-99 18:00 Last Update: 5-May-21 22:06