|
|
Yes, many! However, I need a mobile app that can access sensor data so a pure web app isn't going to cut it.
If I stuck with Xamarin then I'd certainly be thinking about Blazor because of it's speed, and because I'd truly be working in a single language.
cheers
Chris Maunder
|
|
|
|
|
Those pesky details.
You fooled me by mentioning react.
|
|
|
|
|
Jörgen Andersson wrote: Those pesky details
I know, right?
cheers
Chris Maunder
|
|
|
|
|
ive developed a couple apps natively on Android (java via Android Studio) and iOS (swift via XCode).
XCode / iOS dev is such an odd beast, slow and unwieldy, with odd constructs.
Android Dev is so much nicer.
i often dream of writing apps in one language (especially C# ) but alas for anything except straight data driven apps that display data in basic forms Xamarin doesnt buy you much.
i keep trying Xamarin but it's yet another paradigm to learn and you really cant do extended things like connect to iot etc very easily.
The dream of code once build everywhere still doesnt quite exist. google is trying it based upon HTML5 via Flutter (flutter.io)
|
|
|
|
|
Start simple.
"Hello World"
|
|
|
|
|
I was thinking even simpler. Something like "Build succeeded".
In any case, it all works fine on my mac. Windows? Still no luck and I'm assuming it's a tool version mismatch.
cheers
Chris Maunder
|
|
|
|
|
With one UWP project, I'm available on "PC, Xbox, Mobile, HoloLens, and Surface Hub" (X86, x64, ARM).
My "mobile" is a Surface GO (though technically a PC).
The ARM "mobiles" are (apparently) starting to come into their own.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
What's a mobile app?
|
|
|
|
|
Yeah, mobile can be a pain.
NativeScript looks interesting. I think there are other Frameworks / Tools like this as well. E.g. PhoneGap, Cordova, React Native. Almost too many to choose from.
Flutter also looks cool, although you'll need to learn Dart.
|
|
|
|
|
Brilliant! I totally forgot about NativeScript. This also allows me to use the current Vue/Typescript code.
Awesomesauce.
cheers
Chris Maunder
|
|
|
|
|
I'm surprised because you can't believe that 13 years after the iPhone was released we're still in the string and ducttape era of cross platform mobile development, because after many more years cross platform desktop development is still very complicated. And after many, many more years, cross platform host development is still very complicated despite the fact that their most widespread language, COBOL, was born with an environment section to solve cross platform problems.
So I'd like to know what platforms you're comparing mobiles to: Abacuses?
Sorry, it is just a joke. What I mean is that we have to be aware that cross platform development is a very ambitious challenge. But it is also true that we are now much more concerned about cross platform development: We put more effort into it than in the past and have the experience of trying it for so many years.
Going into the subject, there are two main ways to achieve multi-platform applications:
1) Develop a single application that looks and works exactly the same on all platforms. The question is why there are different platforms if we end up building a dull identical application on all of them.
2) Develop an application that shares almost all the code but allows adapted code to take advantage of the special features of each platform. For me this is the right way to cross platform development and it's the one that Xamarin took.
Of course, Xamarin is not perfect and it has a tough learning curve if we want to succeed, but it is worth the effort as long as there is nothing better.
I'm starting to test the UNO platform and so far it's doing very, very well in the trials, but I cannot recommend it until I develop and test something real (UNO platform uses inside Xamarin infrastructure and ideas to some extent).
It should be added that both Xamarin and UNO platform allow cross platform development not only for mobiles, but also for desktops (UNO platform also includes WebAssembly browsers).
NOTE. There may be better environments for cross platform development, but C# coding is essential for me.
Sorry for my bad English
|
|
|
|
|
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
|
|
|
|
|