Offline web apps
-
I'd prefer a happy customer who'll come to me for advice and software in the future as well :~
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
What I'm saying is that if they can use their phone, they can use the internet. If they can't use the internet, make a phone app that can be used offline, and that allows the salesman to manually sync up to the web site when his phone can get a signal. Problem with a phone/tablet app - you need to put it in the appropriate play store for users to download it. That makes it available to everyone on the planet. The whole thing is a mess, and it sucks to have to deal with this kind of stuff.
".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 -
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 agree with JSOP. Write it as a web app and run it on any device. I was tempted to do an iOS app a few years ago for a new customer who elected to use iPads. I tried Xamarin with mixed results, and ultimately decided it wasn't worth the effort or the cost (you have to buy a developer license) for a single customer. Instead, I just wrote up a document explaining how to create homescreen shortcuts to the two apps they needed. (which were already azure web apps anyway...on windows, they run in a browser container (to get the workstation name), for iPads, the shortcut contains a unique id for each iPad.) This has worked really well. Now for a funny story. Back in 2002, our con man salesman promised a few clients that if they bought X today, we could give them a very deep discount (free) on our new web-based POS system when it came out the next year. Well, they bought, and I got started from scratch on our new web-based POS. There were a few real challenges: 0: unreliability of the internet at the time meant that there had to be an off-line mode 1: responsiveness was a priority...long pauses caused by slow connections were not acceptable 2: integration with other local resources/systems (such as barcode/scanner input, imports/exports, images, etc.) Based on those challenges, decided that the customers would need to host their own databases and webserver. They could host for their 80+ locations. The first 6 months were spent using classic asp and throwing together enough screens to test basic functionality. While it worked, the responsiveness issue (or lack thereof) was a deal breaker. Remember, this was almost 20 years ago and hardware/networks/browsers were much slower. :sigh: With 6 months until training, I separated the application into around a dozen modules which became ActiveX controls which were placed on a common webpage for all 80 something locations. :) Not only was it web-based, it was auto-updating, it was available offline, and it connected to local resources. Most of all, it was responsive. Overall, it was a good application and I learned a lot doing it, but it was one of the first to be phased out (not resold) as it was not a market we (I) wanted to be in anyway. I still have it on a disk somewhere. So, there's that example of a windows app masquerading as a web app but I have also done the reverse...running a web app in a browser control of a windows app. Sometimes, hybrid is the answer.
"Go forth into the source" - Neal Morse
-
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 I'm saying is that if they can use their phone, they can use the internet. If they can't use the internet, make a phone app that can be used offline, and that allows the salesman to manually sync up to the web site when his phone can get a signal. Problem with a phone/tablet app - you need to put it in the appropriate play store for users to download it. That makes it available to everyone on the planet. The whole thing is a mess, and it sucks to have to deal with this kind of stuff.
".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:
The whole thing is a mess, and it sucks to have to deal with this kind of stuff.
I completely agree with you there :sigh:
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
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
-
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
There are cloud options where you can push your code to build ios for you. For example, we use Ionic and VS but push to a local Mac pc to build. Some folks even use VM's to do that which is fine, only issue we had was when you try to debug on a local device, VM didn't play well with USB. Was a while ago though.
-
That makes it a lot less interesting :(
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
There are services that will do the deployment, I forget the name of the one my company uses, that will compile the iOS version of the app for you and submit to Apple store etc. That way you don't have to have a Mac. BitRise or DevOps I think might be the names or name of what they use.
B
-
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
Uno Platform is what you want. It supports all phone and desktop platforms from a single codebase.
-
Uno Platform is what you want. It supports all phone and desktop platforms from a single codebase.
Interesting, bookmarked. Thanks :thumbsup:
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
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
maze3 wrote:
Is this a real concern or over thinking?
I'm not sure. I know someone who clears everything by default. I know she's an exception, but it still worries me. Xamarin looks like it could be a valid option. Or maybe a web app with offline functionality, because it'll be cheaper for the client :D
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
Looks like low-code and the code you have to write is VB.NET. I'm a bit allergic to low-code since my last experience with it (no source control, the code you have to write becomes a lot more difficult to write because you need to know the framework, the drag'n'drop "code" takes ages to click together, the database had no query language...). I'll put it on my long-list though.
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
There are services that will do the deployment, I forget the name of the one my company uses, that will compile the iOS version of the app for you and submit to Apple store etc. That way you don't have to have a Mac. BitRise or DevOps I think might be the names or name of what they use.
B
Now it's interesting again! This thread is an emotional roller coaster :laugh:
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
Google's Firebase real-time database is designed for exactly this particular scenario. You don't have to do this, but if you combined it with something like Flutter, you've got a platform for building xplat mobile apps, and (coming soon) web apps on top of it too.
-
Google's Firebase real-time database is designed for exactly this particular scenario. You don't have to do this, but if you combined it with something like Flutter, you've got a platform for building xplat mobile apps, and (coming soon) web apps on top of it too.
Looks very cool! :thumbsup: It's on top of my long-list now :D
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
There are services that will do the deployment, I forget the name of the one my company uses, that will compile the iOS version of the app for you and submit to Apple store etc. That way you don't have to have a Mac. BitRise or DevOps I think might be the names or name of what they use.
B
The last time I looked into it, you still need the Apple machine to do storyboarding, which I have found to be helpful.
-
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
Yes. Xamarin Forms using Visual Studio 2019 on Windows, with a Mac Mini or other Mac on the network that you can connect to from VS2019 and if needed, VNC into. The single Xamarin Forms solution creates iOS, Android, and UWP (for Windows) projects. The UI code is written once (though you can include native UI code if and when necessary, which is rare or non-existent), and shared between the OS-specific projects. The time-to-delivery is better than other development platforms when one considers equally skilled developers in each platform. I use that setup and it works like a charm. The caveat, which is true in about any development environment, is to use the tool as it was designed to be used. Native mobile apps (stateful) are a wholly different architecture than web apps (stateless). In fact, they are more like WinForms apps than like web apps. You can build the WebAPI code in the same project, so if there is an Internet connection, the data uploads. If the connection is not there, you can save the data locally, and automatically upload when connected.
-
You're right. You can develop on Windows, but you still need a Mac to build. :doh:
"These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer
To clarify, the VS in Windows handles the building on the Mac remotely, so you don't have to build on the Mac yourself. VS even builds it on the Mac, and runs it in an emulator on the Windows machine. All your development, building, and deployment takes place through VS on Windows. It is only because of Apple's highly proprietary licensing that the Mac is required.
-
The last time I looked into it, you still need the Apple machine to do storyboarding, which I have found to be helpful.
If MS would maker a XAML Designer on a par with the WinForms designer, the Storyboard would be superfluous. I don't use it. I muddle through with the UI tools provided for Xamarin XAML.
-
If they can use their phone, the internet is available. Make it a web app and walk away.
".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:
If they can use their phone, the internet is available
Have you worked with farmers in rural areas? Until 5G becomes pervasive, there are lots of fields and farmhouses out in the country where the Internet is not available (even on corporate farms), and no service or unstable service for the wireless network. Working offline is a real use case for the scenario presented.