Why this book (also why not Xamarin)?
-
I've just started reading a very good book, iOS 12 Programming Fundamentals with Swift: Swift, Xcode, and Cocoa Basics: Matt Neuburg[^] 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[^]). Petzold-like 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 onli
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 just started dabbling in the Xamarin world and find it refreshing that my existing WPF knowledge is very relevant. Buggy, sure, slow yup, familiar absolutely. Then I tried to implement MVVM and it all fell apart with almost no indication why, sigh here we go again!
Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP
Mycroft Holmes wrote:
Then I tried to implement MVVM and it all fell apart with almost no indication why, sigh here we go again!
:thumbsup: 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): X| X| X|
-
Have you had a look at [Flutter](https://flutter.io) ?
-
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.
-
Jacquers wrote:
Have you had a look at Flutter ?
Looks good from the web site. I wonder if it works well. Have you tried it? Any success?
-
I've just started reading a very good book, iOS 12 Programming Fundamentals with Swift: Swift, Xcode, and Cocoa Basics: Matt Neuburg[^] 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[^]). Petzold-like 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 onli
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.
-
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.
Hopefully they will earn your trust. But, I do not have to wait for the future. It works fine now. The biggest thing they lack is a designer for XAML (and likewise for HTML in Blazor).
-
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.
You do know Xamarin is not hybrid, but 100% native, right?
-
You do know Xamarin is not hybrid, but 100% native, right?
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.
-
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.