|
I agree that #2 is the best approach. I'm not debating that the task of cross platform development isn't tricky. What bothers me most is we have lots and lots and lots of tools. However, with the exception of Xamarin there doesn't seem to be a solution that ties everything together and hides the bare wires.
Xcode, for instance, manages development for at least 5 platforms (iOS, iPadOS, macOS, watchOS, tvOS) and handles all the messing around with certificates and signing, packaging and deploying, coding and testing and emulators.
Visual Studio is just as complete while also having the huge tie in to Azure services, database services, the whole shebang all in one IDE that just works.
Android Studio...well, that's a bit of a mess but it gets the job done. For Android.
And then there is the rest. ReactNative, PhoneGap, Flutter. They all require you to download (and self-manage) a bunch of tools, which in turn will allow you to install a bunch of tools, which in turn will allow you to manage libraries to include in your apps. Gradle, npm, node, yarn, all the CLIs, and too bad if you get the versions mismatched. And then you have to manage the Android SDK versions, and then connect to a mac device (if you're not actually on a mac).
This is before you've written a single line of code.
I guess it comes down to
a) Google doesn't care about Apple, Apple doesn't care about Google. They have no incentive to make things easier for each others' devs.
b) Microsoft cares about how many devs it can get using Azure, so it will make it easy for devs to write to both OSs in the hope they'll use Azure for the backend services
c) No one else has the industry leverage to pull everyone else in line and keep things in sync. It's a hodge-podge of developers writing their own systems in isolation because everything else sucks (in their opinion). The fact that there are so many frameworks out there, all so similar, speaks volumes. The road is littered with abandoned betas.
cheers
Chris Maunder
|
|
|
|
|
My team has been using Flutter for cross platform mobile development and they are very happy with it.
Flutter uses Dart as the language, which is not that different from c#.
|
|
|
|
|
From my perspective the answer to cross platform mobile applications are Progressive Web Apps (PWA)
CSS, JS, and HTML paired with C# backend allows me, with the help of a service worker and manifest, to create a PWA.
Once a site is PWA-ified, the site triggers Add-to-Home-Screen functionality on iOS and Android browsers. Once on the home screen the site behaves like an app, with the browser elements stripped away.
The beauty is now that any updates to my site (still one code base) are available to anyone who clicks on the app icon.
To take it one step further PWAbuilder.com then creates three app packages (Play Store, App Store, Windows Store) which I then use to have a copy of my site (oops app) live on the three stores.
In the very near future you can get rid of most of the JS in your client code using Blazor.
|
|
|
|
|
Interesting work around but it does emphasise that you're working around, not working with mobile development. I get it, thought.
Unfortunately I need sensor access.
cheers
Chris Maunder
|
|
|
|
|
I've been very happy with Xamarin.Forms, coming into it with an existing C# WebForms and MVC experience. Even though Microsoft is embracing React Native, I don't see them pushing anyone away from Xamarin. Xamarin seems to have a strong community within Microsoft, and it gets better and more user-friendly with every release of Xamarin.Forms and Visual Studio for Mac.
|
|
|
|
|
Simple solution. Quit going to the gym. Sheesh.
Outside of a dog, a book is a man's best friend; inside of a dog, it's too dark to read. -- Groucho Marx
|
|
|
|
|
I've been avoiding mobile development altogether, and have done very little web development, for exactly those same reasons.
Frankly at this rate, by the time something decent is out, I'll be retired. I'm just hoping I can stretch it for that long.
|
|
|
|
|
Yes. It is an absolute debacle.
|
|
|
|
|
Have you tried Ionic & Phonegap (or Capacitor). Uses Angular or React. Can connect to phone api's so you can use the sensors. MS Code is a great development environment and it uses Typescript. Can create store ready apps for Apple or Android. Best off it's free with lots of support...have a look.
Most important is to ensure your local versions match the repos before downloading. Have had some agony on old tutorials that don't match my local dev environment.
|
|
|
|
|
I tried PhoneGap a year or so ago and found it kinda painful.
The "mismatched version" issue with old examples is a major killer here. Everything is still changing so quickly, and so fragile, that stuff a year old simply doesn't work anymore.
cheers
Chris Maunder
|
|
|
|
|
I'll spare you the details of the context in which Bill's darkside sense of "humor" was unleashed on you rather than recursing until it ran out of stack space in the virtual sandbox of horrors that Bill's brain sometimes does dysfunctional programming [1] in during the winter solstice when his druidic heritage surfaces. As William Blake said:Quote: Rintrah roars and shakes his fires in the burdened air;
Hungry clouds swag on the deep. [2] I would like to say: SORRY !
And, wish you and your families an auspicious beginning of this Year of the Rat.
[1] in dysfunctional programming every method must apply itself to all its ancestors ad infinitum.
[2] in "The Marriage of Heaven and Hell: The Argument"
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
|
Embrace the dark side, Bill...
".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
|
|
|
|
|
It's like he intentionally fell on his own sword. Just not on Christmas!
I, for one, like Roman Numerals.
|
|
|
|
|
To have an error is human, to admit it is wisdom, to apologize for it is brave
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
To apologize is a sign of weakness.
".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
|
|
|
|
|
Does that mean the brave are weak?
Well, they tend to have shorter lives...
|
|
|
|
|
Quote: To apologize is a sign of weakness.
You may not realize it, but you are quoting John Wayne in the 1949 movie "She wore a yellow ribbon." Much later Gibbs in NCIS also used the expression.
|
|
|
|
|
I do, indeed, realize it.
".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
|
|
|
|
|
To act based on your conscience, without regard to how other people may judge you, is: a road to wisdom littered with broken glass the fool must walk on barefoot ?
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
Ignore the wooshing noise; it'll just be a bird, or something.
Probably a vampire.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Damn, looks like I missed all the fun. That'll teach me to live in a hole and spend the entire break writing code. Mmmm... code...
/ravi
|
|
|
|
|
I thought it was dark and very unlike you....and I loved it. I don't think you owe anyone an apology, IMHO.
Cheers.
It's much easier to enjoy the favor of both friend and foe, and not give a damn who's who. -- Lon Milo DuQuette
|
|
|
|
|
Isn't it interesting that we say "owe ... an apology" ... as if there is a debt ?
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
If we start making apologies for being inappropriate in a forum, I'd still be typing this post next year.
The universe is not a safe-space.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|