Is it possible to install a pre-imaged PWA for 100% offline use? - progressive-web-apps

My company has a PWA and we recently received an interesting business opportunity: a certain organization wants to purchase a volume license and pre-install the app on a very large number of computers, some of which may never go online, because they're going to areas of rural poverty and lack of access to the Internet, for example.
In addition to avoiding the need for download, we want to do this via pre-image so that we can provide a standardized environment, and not have everyone installing the PWA to different locations or not knowing how to install, even if they were connected.
Of course, the normal PWA workflow is to install and load assets onto the machine via download, at least one time up front, but this would only work if you could guarantee some initial window of connectivity.
Is there any way to accomplish the pre-install as I'm describing?

I think you will need to check into Enterprise IT level tools for something like this. Those tools can normally pre-configure a device with an image.
The user would of course still need to authenticate in your application.
The real problem is the application will need to update every so often.
Honestly if it were me I would configure the image with a local, default home page, say in Edge for desktop, and have links to the targeted PWAs. From there they can install.
For me, most applications, even real large ones, can be completely rendered and installed in a couple of seconds on normal cellular connectivity.
I did this for a couple of conferences I went to last year:
https://love2dev.com/pwa/pubcon/
I will ping some folks about the preconfigured image and get back to you if they answer me.

Related

Monitoring the other Apps from one app in iPhone

I need to create and App that will run in the background and will monitor the user's behavior in term of applications installed, opened and deleted.
i.e Application will save the information in the database that at what time user has installed/opened/deleted an application in iphone.
I wonder if its possible and Apple will allow this??
I tried to google on it but did not get anything, i know if its possible then it would be possible by multiasking only??
Can any one please help me on the same.
Brn
Not possible. Your app can only run when the user chooses to (except for a limited sub-set of tasks like VoIP, etc).
Your app can know nothing about other apps.
iOS apps are sandboxed. I wouldn't say impossible but certainly not allowed. You'd have to find a security hole to give you root access first. Oh, and notify us when you do ;).
Edit:
Maybe it wasn't clear in my post but I was at least half joking. Not sure why you want to do what you want to do. I can imagine the following scenarios:
1) Your company wants to monitor everything their users do on their phones. In that case I would either
a) lock them down and only allow app installation through a company portal (enterprise distribution is possible in iOS) OR
b) forget about iOS alltogether. Blackberry would probably be closer to what you want, although I don't really have experience with that platform. Also, its future is not sure.
2) You're trying to do something illegitimate. Because of iOS's locked down nature it won't be easy. See how few successful attacks there have been in the last years - and that's for a highly successful platform where an attack could be high paying both in terms of money and reputation.

Fetch from background

I am writing an iPhone app, and I have a remote server that will deliver content. I would like to have my app poll the server once per day to see if there is new content, even if it's not running or in the background. I would also like to do this without setting up an APNS. Any advice?
You can't do that, either when your 'not' running or if you are running in the background. The best you could do is to download once per day when your app is first run / pushed to the foreground.
You could use remote notifications to "prompt" the user to bring the app to the foreground so that it could download something?
With the current apple IOS guidelines, that is about the best you can do.
I read that you are trying to avoid using APNS, but I am wondering if you are trying to avoid it for the right reasons, especially when it is designed to efficiently solve the scenario you are describing. I've seen many developers seek alternative solutions to APNS simply because the technology appeared to be complex to use after looking at Apple's documentation. The online documentation does go into a lot of details, right down to the binary protocol level.
But just to be sure you know, there are open-source libraries whose only purpose is to shield you from all these technical details. Some libraries are more complex than others, but some are remarkably user-friendly. If you have not done so already, you might like to take a look at JavaPNS and other similar projects.

How to implement and create a central Scoring server using iPhones to send updates

I have been searching and googling different ways to build a central scoring server for a golf tournament but have not found any dead set answers on how I can do this. What I'm looking for is some advice on how I should implement this. I do have a background in programming in Objective-C as I have created a couple of iPhone apps and I'm not afraid of trying and learning new things. I will explain what I envision and if I could get some suggestions on how to start, that would be great.
a. My golf tournament would have about 80 people playing in it.
b. I would have 5 volunteers with iPhones stationed around the golf course to collect scores from the players as they finish a couple of holes.
c. The volunteer would enter the scores into an app on the iPhone. The app would then send the scores to the central scoring server to update a giant leader board at the clubhouse.
My questions are what kind of database should I use? I'll need something that is very user friendly as I'll need to be able to make quick changes to the database on the fly if required. The iPhones will not share the same network as the central server as they would most likely be on 3G out on the golf course. For now, the iPhone app that is sending scores to the server, will not be in the app store as I will build the app through an ad Hoc profile.
Any help, suggestions or advice would greatly be appreciated.
You would presumably need a hosted service of some sort that each instance of your iPhone app would send its data to. Typically those hosted services are implemented in other languages/technology stacks like Java, PHP, or Ruby/Rails. The server app would then persist data into a database: MySQL is a commonly used solution, but there are a lot of options with different strengths and weaknesses depending on your specific requirements.
If a hosted server application isn't somewhere you want to go, and if your requirements are simple enough, you could look into a file-based server solution. For example, you could build your iPhone app to place scores in a small file on a Dropbox folder and then write a standalone app that collects those small files and does whatever you want with the data.
Hope that helps
If you have little experience with servers, you might also consider one of the new server-in-a-can services like parse, stackmob, or kinverse. There's quite a bit involved in building/maintaining a server, especially if you need it to scale.

Developing iPhone with colocation Mac mini

I want to develop iPhone apps but i don't have a mac and money for that. I have an idea for that but i don't know if it will work?
I will rent a colocated mac mini from web and start developing from that. From a company like http://www.macminicolo.net/ I am a new bee so if there will be a problem, please warn me.
Experts, what will be the problems for me in that situation?
Thanks.
The biggest problem will be that you won't be able to debug on a device. And your workflow will be a bit cumbersome: after compiling, you will need to copy the compiled app to your local PC and get it onto your device (e.g. via the iPhone Configuration Utility for Windows). Then you can test and repeat, but you will only be able to do "printf debugging".
Those are the obvious problems I can see, there surely are more.
I suggest you get a used Mac Mini from eBay or something. They're really not expensive and will make your life a lot easier.
http://www.macincloud.com does not provide a dedicated or virtual instance. A username is provided without administrative rights. Especially, when it comes to CI , you can not even SSH to machine to trigger a build script.
To cut a long story short, macincloud is not a colocation like solution.
There are a few solutions ordered by price:
Hakintosh.com, you will have to partition your hd, but this is the cheapest method by far. (Legal grey area though). Price: FREE
Rent a mac remotely. Couple of issues there:
a. Testing on a physical device. Use this workaround TestFlightApp.com
b. Remote build access for tools like gamemaker. Macincloud.com has a cheap add on that let's you do this. they also have these installed already: http://www.macincloud.com/features/tools/tools. Price: ~$20/month
c. If you need Root access all the time, you'll wan to go with a dedicated plan. This will only make sense if you only plan to use for a couple months. macminicolo and macincloud have different pricing metrics based on what you need. Price: ~$50/month and up.
(macminicolo says $35, but couldn't find anything cheaper than $55). No evidence of pre-installed apps for the dedicated accounts either. But that doesn't matter if you have Root access.
Buy a refurbished Macmini! http://store.apple.com/us/browse/home/specialdeals/mac/mac_mini
Their stock changes daily, but this is a great option. You can pick one up for around $400 and they work great!
For any Mac Cloud service, be sure to choose a server location that is close to you geographically. This will eliminate latency issues.
you also cannot install applications without going through the admins. because you are logging in to an actual mac the install cannot affect other uses. i don't think this is a solution for developers.
DarkDust is right. You will be able to compile it remotely and run the app on the iPhone simulator. However, to have an actual mac is the best.
Regarding colo, a better alternative is to use macincloud at http://www.macincloud.com

Pricing model for IPhone paid + free app + desktop app

I finished building an app that allows beaming of photos, contacts and text clips over Wi-Fi
IPhone to IPhone and IPhone to desktop.
I want to decide on the feature set of the lite version of my IPhone app. I also want to come up with a pricing model. So the question is, which of these components should be free, and for which I should be charging for ?
For example, the lite version could have all features except the ability to interact with the desktop version - that is, it would work IPhone to IPhone, but not IPhone to desktop. The paid version would be able to beam to the desktop. In addition, the desktop version would be free, so you could share it with family and friends.
Alternatively, there would be a single free IPhone version and I would charge for the desktop app. The only thing here is that I would have to setup server side code for managing registration codes.
One reason to make your desktop app free and the iPhone app a paid product would be to take advantage of Apple's app store and their payment processing, hosting, etc. While I know 30% seems steep for what Apple provides, it is nice to have that part of the business be handled by someone else. For example, you will never have to deal with credit card processing or have to issue refunds - Apple does all that for you.
I like the mechanism that is more suited to viral distribution and giving people a good taste of all the features, before they are sort of convinced to go for the paid version. The marketing value of an app that can be freely tried out once one user recommends it to another, is invaluable. If someone recommends a product to me and I have to pay for it, then I probably would put off trying it till alter when I have learned more about it. However, if it is free, I can download and try it without feeling like I need to do more research prior. Once I like, and am hooked on it, then I will want locked functionality that I would have to pay to unlock.
I'd stay away from selling, payment processing, and reg code management, if your expertise is in coding - you'd make yourself more money writing more code than writing reg code management utilities...
Good luck.
I'm not sure charging for either is the best idea. If you keep both tools free, you get people trying (and liking) both apps. Viral distribution will ensure a decent user base. Once people use both tools, they're more likely to pay for the next part, which is the connector software.
I like your idea of three parts: a free iPhone app (Let people share photos on their iPhone), free PC app (There are hundreds of photo viewing apps, free... Don't try to charge for them, that way lies pain) and paid connection between 'em.
That way:
You get people using your iPhone app virally (To share with each other's phones & try out the application)
You get people using your PC app virally (Because the cost to try is nearly null)
The connection can be sold through Apple's iStore, so you don't need to do the money handling side
You could even make the connection component a subscription, but as an end user I hate that idea unless I get some additional functionality from it being a subscription (Like free hosting).