|
u could develop a offline app for an android phone or tablet which as 3g/4g modem which are cheaper to give to sales personnel to do field work , if there is no connection later it will synch the data with the cloud server or aws/azure cloud db ....
Caveat Emptor.
"Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
|
|
|
|
|
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.
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
modified 24-Oct-19 14:54pm.
|
|
|
|
|
|
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
|
|
|
|
|
You don’t “need” a Mac. You can use a hackintosh running under VMware. If your dev machine has enough memory, you can run the hackintosh on same machine as VS.
|
|
|
|
|
Try Xojo. It allows you to write native code for all popular platforms. That is something that not even MS or Java can do.
|
|
|
|
|
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.
|
|
|
|
|
SeasonedGuru wrote: That is something that not even MS ... can do.
What "popular platform" does Xamarin not support?
|
|
|
|
|
Uno Platform is what you want. It supports all phone and desktop platforms from a single codebase.
|
|
|
|
|
Interesting, bookmarked. Thanks
|
|
|
|
|
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.
https://endpointsystems.com
|
|
|
|
|
Looks very cool!
It's on top of my long-list now
|
|
|
|
|
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.
|
|
|
|
|
Couchdb builtin offline ability and can sync when you get a connection.
|
|
|
|
|
I've been using Ionic (ionicframework.com) for several years. It works well if you want to target Apple, Android and web all with one code base. It also supports Progressive Web Apps (offline web applications). I've had clients that did not want to pay for an iOS developer, an Android developer and a web developer but wanted it on all 3 platforms. Obviously, having one code base also makes it easier to maintain.
|
|
|
|
|
Front end: PhoneGap, Xamarin, Flutter
Flutter might be your best bet here, but because it's so new it's a bit of a pain to find certain kinds of libraries.
Offline w/ sync, backend: PouchDB, TurtleDB, RXDB
|
|
|
|
|
|
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)
|
|
|
|
|
|
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[^]
|
|
|
|
|
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.
|
|
|
|
|
The app which does nothing can work everywhere without any UI and/or performance issues.
|
|
|
|
|
The daily Bing image[^], of course
I have an app that puts the image on my desktop's background.
This particular one made me scratch my head.
For a minute there I thought the building had a sticker or a painting of trees on the concrete below it.
The thought even crossed my mind that this was some very poor PaintShop job.
Then I realized there's no concrete at all and what I'm looking at is just the background under a bridge!
|
|
|
|
|
Drone 7605910, report to assimilation chamber 4 for readjustment of your optical processors.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|