|
1 | 1 | # iOS-PWA-Wrapper |
2 | | -Under construction |
| 2 | + |
| 3 | +An iOS Wrapper application to create a native iOS App from an offline-capable Progressive Web App. |
| 4 | + |
| 5 | +Drafted for the future iOS App of my [Leasing Calculator](https://www.leasingrechnen.at) Web App using [React](https://github.com/facebook/react), [Redux](https://github.com/reactjs/redux), [Materialize.css](https://github.com/Dogfalo/materialize) and a lot of Offline-First love over at [leasingrechnen.at](https://www.leasingrechnen.at). |
| 6 | + |
| 7 | +For bringing offline-capabilities to your Web App on Safari and iOS' embedded WebKit browser, you have to use [AppCache](https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache). [Service Worker API](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API) is not yet supported in WebKit, so you might want to use something like [Appcache Webpack Plugin](https://github.com/lettertwo/appcache-webpack-plugin) to make your PWA offline-accessible on iOS in a somewhat easy way. |
| 8 | + |
| 9 | +### Under development, don't use for your apps yet. First Release coming soon! |
| 10 | + |
| 11 | +## Why would I use a wrapper? |
| 12 | +I know, using a Wrapper-App to display a Website can feel a bit odd. But there are a few good reasons why you'd package your Web App like this. |
| 13 | +- If you've got a very sophisticated UI already, it might make sense not to rebuild it from scratch for multiple platforms, especally if it's a Single Page Application already, that doesn't "feel" like a Website. |
| 14 | +- There might be as well less competition for a given niche on App Stores, in comparison to Google directly. With [leasingrechnen.at](https://www.leasingrechnen.at), I've got easily into the Top 10 Apps on Google Play for my country, whereas Google Search put me on page 9 as the Site is relatively new. |
| 15 | + |
| 16 | +## What it does |
| 17 | +- Provides a native iOS navigation header. |
| 18 | +- Sets up a WKWebView instance just the way PWAs/SPAs like it. |
| 19 | +- Provided your Web App is Offline-capable, it only needs an Internet connection on the first startup. If this fails, it shows a native refresh widget. |
| 20 | +- Opens all external URLs in the device's Browser instead. |
| 21 | +- Automatically fetches Updates for your Web App. |
| 22 | + |
| 23 | +## How to build your own |
| 24 | +- Clone/fork repository and open in Xcode |
| 25 | +- Head over to `Constants.swift` and |
| 26 | + - add your app's name and the main URL to fetch |
| 27 | + - set the host you want to restrict your app to |
| 28 | + - customize the colors |
| 29 | + - tweak the other options as you prefer |
| 30 | +- Put your own App icons in place in `Assets.xcassets` |
| 31 | + - Remember, 1pt equals 1px on 1x-size. E.g., if you have to provide a 20pt icon in 3x-size, it has to be 60x60px. |
| 32 | + - I like using [App Icon Maker](http://appiconmaker.co), but any other similar service will do it as well. |
| 33 | +- Change _Bundle Identifier_ and _Display Name_ |
| 34 | +- Build App in Xcode |
| 35 | + |
| 36 | +### I don't accept Feature Requests, only Pull Requests :) |
| 37 | + |
| 38 | +## License |
| 39 | +[GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html) - if you use it, we wanna see it! |
0 commit comments