Offline web apps
-
So I'm taking over this client with the WinForms application. I know this client wants some new software in the near future. The thing is, he has some sales people who go and sell their product over at the customer, who are all farmers. They also go out in the field where internet isn't always available. I know they either have a phone or tablet where they want to enter the client's order. They currently write it down on paper or enter it as plain text on a tablet and then someone else enters it into the WinForms application. So I'm thinking, since internet is not always available, I'll have to go with a phone app. It should work on iOS and Android and, if possible, also on tablets, which can also be Windows. These apps are installed locally so they should always work, even without internet. Entered data can be cached when internet is not available and synced once an internet connection becomes available again (which can be hours later). Does anyone here know of a tool, library or framework that runs on phones and tablets on iOS, Android and Windows or am I doomed to write umpteen different apps? I know PhoneGap works on iOS and Android (and in the past on Windows Phone too). I've heard some good things about Xamarin too. But I have no experience in either. I know I'll need a Mac to build anything for iOS because Apple are a bunch of ... Well, if you can't say anything nice just don't say anything at all :) I've also read about actual offline web pages, but doing something like clearing your browser history or cookies will mess them up good. It sounds like it's all kind of crap in 2019. Any suggestions, ideas, experiences, tips?
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
You are missing the point. In the field, a tablet or smartphone is easier to manage than carrying along a Windows laptop. Your idea works OK if the person is carrying a Surface tablet that can run a desktop app. But if you want to give the field staff the versatility to use a tablet or smartphone, or even a laptop, then a Xamarin Forms app is the best approach. Xamarin Forms apps are, in essence, a desktop app that runs on iOS, Android, or Windows. No need to get your panties in a wad and be snarky because you do not get the problem domain.
They may be "easier to manage", but getting an app onto those devices requires going through the appropriate play store. Getting software onto a laptop requires no such restriction, PLUS most laptops rn Windows, so you only have one latform to support. But whatever...
".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 -
They may be "easier to manage", but getting an app onto those devices requires going through the appropriate play store. Getting software onto a laptop requires no such restriction, PLUS most laptops rn Windows, so you only have one latform to support. But whatever...
".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#realJSOP wrote:
but getting an app onto those devices requires going through the appropriate play store
Not true. They can be deployed privately. Further, supporting multiple platforms with Xamarin Forms is easy, since there is really just one virtualized platform. If the use case is an app for use only within your organization, where you have 100% control over what is used in the field, then your approach makes the most sense - a thin client WinForms or WPF or UWP. Take your pick. However, if the use case is for users outside your organization (company-to-company, for example; or for a marketable app to other organizations), then the Xamarin Forms route makes the most sense. Even in an organization, field staff may have their equipment determined by the field office, especially if it is a franchise.
-
So I'm taking over this client with the WinForms application. I know this client wants some new software in the near future. The thing is, he has some sales people who go and sell their product over at the customer, who are all farmers. They also go out in the field where internet isn't always available. I know they either have a phone or tablet where they want to enter the client's order. They currently write it down on paper or enter it as plain text on a tablet and then someone else enters it into the WinForms application. So I'm thinking, since internet is not always available, I'll have to go with a phone app. It should work on iOS and Android and, if possible, also on tablets, which can also be Windows. These apps are installed locally so they should always work, even without internet. Entered data can be cached when internet is not available and synced once an internet connection becomes available again (which can be hours later). Does anyone here know of a tool, library or framework that runs on phones and tablets on iOS, Android and Windows or am I doomed to write umpteen different apps? I know PhoneGap works on iOS and Android (and in the past on Windows Phone too). I've heard some good things about Xamarin too. But I have no experience in either. I know I'll need a Mac to build anything for iOS because Apple are a bunch of ... Well, if you can't say anything nice just don't say anything at all :) I've also read about actual offline web pages, but doing something like clearing your browser history or cookies will mess them up good. It sounds like it's all kind of crap in 2019. Any suggestions, ideas, experiences, tips?
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
What about using the Qt framework(Qt | Cross-platform software development for embedded & desktop[^])? You could build the application on Windows, iOS, and Android. If you share your final source code with your customer, you may be able to use the Open Source version, but I would check the licensing restrictions. You could also check out Felgo(Felgo: Build Native Cross-Platform Apps and Games. Rapidly.[^]), as well. It is build on top of the Qt framework, but their licensing seems more understandable. Cheers!
-
So I'm taking over this client with the WinForms application. I know this client wants some new software in the near future. The thing is, he has some sales people who go and sell their product over at the customer, who are all farmers. They also go out in the field where internet isn't always available. I know they either have a phone or tablet where they want to enter the client's order. They currently write it down on paper or enter it as plain text on a tablet and then someone else enters it into the WinForms application. So I'm thinking, since internet is not always available, I'll have to go with a phone app. It should work on iOS and Android and, if possible, also on tablets, which can also be Windows. These apps are installed locally so they should always work, even without internet. Entered data can be cached when internet is not available and synced once an internet connection becomes available again (which can be hours later). Does anyone here know of a tool, library or framework that runs on phones and tablets on iOS, Android and Windows or am I doomed to write umpteen different apps? I know PhoneGap works on iOS and Android (and in the past on Windows Phone too). I've heard some good things about Xamarin too. But I have no experience in either. I know I'll need a Mac to build anything for iOS because Apple are a bunch of ... Well, if you can't say anything nice just don't say anything at all :) I've also read about actual offline web pages, but doing something like clearing your browser history or cookies will mess them up good. It sounds like it's all kind of crap in 2019. Any suggestions, ideas, experiences, tips?
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
So I'm taking over this client with the WinForms application. I know this client wants some new software in the near future. The thing is, he has some sales people who go and sell their product over at the customer, who are all farmers. They also go out in the field where internet isn't always available. I know they either have a phone or tablet where they want to enter the client's order. They currently write it down on paper or enter it as plain text on a tablet and then someone else enters it into the WinForms application. So I'm thinking, since internet is not always available, I'll have to go with a phone app. It should work on iOS and Android and, if possible, also on tablets, which can also be Windows. These apps are installed locally so they should always work, even without internet. Entered data can be cached when internet is not available and synced once an internet connection becomes available again (which can be hours later). Does anyone here know of a tool, library or framework that runs on phones and tablets on iOS, Android and Windows or am I doomed to write umpteen different apps? I know PhoneGap works on iOS and Android (and in the past on Windows Phone too). I've heard some good things about Xamarin too. But I have no experience in either. I know I'll need a Mac to build anything for iOS because Apple are a bunch of ... Well, if you can't say anything nice just don't say anything at all :) I've also read about actual offline web pages, but doing something like clearing your browser history or cookies will mess them up good. It sounds like it's all kind of crap in 2019. Any suggestions, ideas, experiences, tips?
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
I may get flogged depending on how y'all feel about javascript, but I have found react-native (if you want a quick boost to get you going, react-native w/expo) to be very helpful. I started looking into it in August and spent about 4 weeks just tinkering and learning. A simple offline app could be constructed much more quickly and deployed, depending on how well you like javascript. I actually think expo also has a method to submit to apple if you lack a Mac. Best of luck.
- Freedom is the right of all sentient beings. (Optimus Prime, or Michael Bay, but I prefer Otpimus Prime)
-
So I'm taking over this client with the WinForms application. I know this client wants some new software in the near future. The thing is, he has some sales people who go and sell their product over at the customer, who are all farmers. They also go out in the field where internet isn't always available. I know they either have a phone or tablet where they want to enter the client's order. They currently write it down on paper or enter it as plain text on a tablet and then someone else enters it into the WinForms application. So I'm thinking, since internet is not always available, I'll have to go with a phone app. It should work on iOS and Android and, if possible, also on tablets, which can also be Windows. These apps are installed locally so they should always work, even without internet. Entered data can be cached when internet is not available and synced once an internet connection becomes available again (which can be hours later). Does anyone here know of a tool, library or framework that runs on phones and tablets on iOS, Android and Windows or am I doomed to write umpteen different apps? I know PhoneGap works on iOS and Android (and in the past on Windows Phone too). I've heard some good things about Xamarin too. But I have no experience in either. I know I'll need a Mac to build anything for iOS because Apple are a bunch of ... Well, if you can't say anything nice just don't say anything at all :) I've also read about actual offline web pages, but doing something like clearing your browser history or cookies will mess them up good. It sounds like it's all kind of crap in 2019. Any suggestions, ideas, experiences, tips?
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
PWA is the way to go. You can take any of the Microsoft website templates (or anything else for that matter) and make what you need. Then you go to pwabuilder.com and get a manifest/service worker to add to your code. At the same site you get everything you need to submit to the Windows Store, Play Store and App Store. Here is part 2 of a 25 part tutorial about everything you always wanted to know about PWAs: PWA Tutorial for Beginners #2- Setting up a Project - YouTube[^]
-
Sander Rossel wrote:
I know I'll need a Mac to build anything for iOS
Apparently, you can use Xamarin.iOS[^] from Visual Studio on Windows. Edit: Scratch that. You can develop on Windows, but you still need a Mac to build.
Installing Xamarin.iOS on Windows - Xamarin | Microsoft Docs[^]:
To build Xamarin.iOS apps with Visual Studio 2019 on Windows, you will need:
- A Windows machine with Visual Studio 2019 installed. This can be a physical or a virtual machine.
- A network-accessible Mac set up with Apple's build tools and Xamarin.iOS. Visual Studio 2019 accesses this machine over a network connection to use Apple's build tools, which are required for compiling native iOS applications.
"These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer
-
0 - I have not used any of the following in real world, but hopefully helpful pointers to look at. 1 - what is your language preference/strongest If wanting to stick with c#/.net side of things, look toward Xamarin. Build one logic core, apply platform specifics for android/ios where needed. But will need apple machine to build the ios version. 2 - Web App with offline functionality
Quote:
clearing your browser history or cookies will mess them up good
Is this a real concern or over thinking? I would expect offline data to be stored in the local storage api and not as cookies. Yes this can be cleared, but I would check what the default settings are for clearing. If want to give the "feel" of an app, then maybe look at wrapping it in electronjs
-
So I'm taking over this client with the WinForms application. I know this client wants some new software in the near future. The thing is, he has some sales people who go and sell their product over at the customer, who are all farmers. They also go out in the field where internet isn't always available. I know they either have a phone or tablet where they want to enter the client's order. They currently write it down on paper or enter it as plain text on a tablet and then someone else enters it into the WinForms application. So I'm thinking, since internet is not always available, I'll have to go with a phone app. It should work on iOS and Android and, if possible, also on tablets, which can also be Windows. These apps are installed locally so they should always work, even without internet. Entered data can be cached when internet is not available and synced once an internet connection becomes available again (which can be hours later). Does anyone here know of a tool, library or framework that runs on phones and tablets on iOS, Android and Windows or am I doomed to write umpteen different apps? I know PhoneGap works on iOS and Android (and in the past on Windows Phone too). I've heard some good things about Xamarin too. But I have no experience in either. I know I'll need a Mac to build anything for iOS because Apple are a bunch of ... Well, if you can't say anything nice just don't say anything at all :) I've also read about actual offline web pages, but doing something like clearing your browser history or cookies will mess them up good. It sounds like it's all kind of crap in 2019. Any suggestions, ideas, experiences, tips?
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
Been catching up on my CodeProject daily news and came across your question. I did some work a couple of years ago on a single-page application written in ember.js and we had a requirement for the application to work in an "offline" mode. Once the user had logged onto the system they could enter offline mode and only offline modules would be available. We used node.js to host a local rest api that would then be able to access local resources to save the relevant messages/data since we had the same issue with localstorage being cleared and couldn't have our messages disappear. The SPA was then also locally hosted and communicated with the node rest api (we used restify). It appears as though node.js is available for mobile devices now also so perhaps you could consider something along the lines of a locally hosted web-site that uses the rest api as a store-and-forward mechanism.
-
So I'm taking over this client with the WinForms application. I know this client wants some new software in the near future. The thing is, he has some sales people who go and sell their product over at the customer, who are all farmers. They also go out in the field where internet isn't always available. I know they either have a phone or tablet where they want to enter the client's order. They currently write it down on paper or enter it as plain text on a tablet and then someone else enters it into the WinForms application. So I'm thinking, since internet is not always available, I'll have to go with a phone app. It should work on iOS and Android and, if possible, also on tablets, which can also be Windows. These apps are installed locally so they should always work, even without internet. Entered data can be cached when internet is not available and synced once an internet connection becomes available again (which can be hours later). Does anyone here know of a tool, library or framework that runs on phones and tablets on iOS, Android and Windows or am I doomed to write umpteen different apps? I know PhoneGap works on iOS and Android (and in the past on Windows Phone too). I've heard some good things about Xamarin too. But I have no experience in either. I know I'll need a Mac to build anything for iOS because Apple are a bunch of ... Well, if you can't say anything nice just don't say anything at all :) I've also read about actual offline web pages, but doing something like clearing your browser history or cookies will mess them up good. It sounds like it's all kind of crap in 2019. Any suggestions, ideas, experiences, tips?
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
The app which does nothing can work everywhere without any UI and/or performance issues.:cool: