# Modular app

**URL:** <https://forum.ionicframework.com/t/modular-app/14184>\
**Category:** ionic-v1\
**Created:** [December 16, 2014, 12:52am UTC](https://forum.ionicframework.com/t/modular-app/14184 "2014-12-16T00:52:07Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![BlazingUFO](https://avatars.discourse-cdn.com/v4/letter/b/6bbea6/32.png) [@BlazingUFO](https://forum.ionicframework.com/u/BlazingUFO)\
**Post date:** [December 16, 2014, 12:52am UTC](https://forum.ionicframework.com/t/modular-app/14184/1 "2014-12-16T00:52:07Z")

</div>

hello, Im quite new to ionic. is it possible to create a modular app with ionic? I mean it the way, that I create some app, connect to server, download some package and in the package would be some runnable content

---

<div class="post-metadata">

**Author:** ![iwantwin](https://avatars.discourse-cdn.com/v4/letter/i/94ad74/32.png) [@iwantwin](https://forum.ionicframework.com/u/iwantwin)\
**Post date:** [December 16, 2014, 1:20am UTC](https://forum.ionicframework.com/t/modular-app/14184/2 "2014-12-16T01:20:16Z")

</div>

Hmm… I’m sure it would be possible, but it wouldn’t be allowed by different mobile platforms… Both android and iOS require you to supply all content of the app, so they can check it. If you would have some dynamic content injection, they can’t check if your app complies to their policy’s, and therefor they will reject your application… What is your use-case? This doesn’t really concern ionic, it’s app development in general. If you provide your use-case we might be able to help think for a decent solution for your?

---

<div class="post-metadata">

**Author:** ![BlazingUFO](https://avatars.discourse-cdn.com/v4/letter/b/6bbea6/32.png) [@BlazingUFO](https://forum.ionicframework.com/u/BlazingUFO)\
**Post date:** [December 16, 2014, 9:40am UTC](https://forum.ionicframework.com/t/modular-app/14184/3 "2014-12-16T09:40:25Z")

</div>

I am supposed to make an cross-platform educational application for maths as my bachelors work. It should have some main context with ability to download excercises, or levels. If another student make a new level, they should be able to put it on server, and it should appear in my app. But I am not able to create some main level, and download just parameters to create new, because all levels would be completely different.

I found this in another thread:  
Its really easy, i’ve done it in production for a large corporation. Thats also how Financial Times updates their webapp inside their native wrapper.

develop as usual  
use grunt-manifest to automate creating an appcache manifest file  
point index.html to remote host instead of local machine, place all assets on remote host  
on first launch, the app will download the app remotely and as soon as you update one of the files on the remote server, it will be updated in the webapp. boom - store-independent, realtime native app updates.

---

<div class="post-metadata">

**Author:** ![iwantwin](https://avatars.discourse-cdn.com/v4/letter/i/94ad74/32.png) [@iwantwin](https://forum.ionicframework.com/u/iwantwin)\
**Post date:** [December 16, 2014, 9:54am UTC](https://forum.ionicframework.com/t/modular-app/14184/4 "2014-12-16T09:54:13Z")

</div>

Yeah this is al true, but your app won’t run without network connection… What they indicate to build is just a native wrapper for your mobile website? I’m okay with this if you want to, and you are able to do this with ionic 😉

But you are not really “downloading some package” but rather just referring the user to an external ionic-powered mobile web-app then 😉

---

<div class="post-metadata">

**Author:** ![BlazingUFO](https://avatars.discourse-cdn.com/v4/letter/b/6bbea6/32.png) [@BlazingUFO](https://forum.ionicframework.com/u/BlazingUFO)\
**Post date:** [December 16, 2014, 9:59am UTC](https://forum.ionicframework.com/t/modular-app/14184/5 "2014-12-16T09:59:48Z")

</div>

I dont know, they dont really care how it works, they just want it to work.

it wouldnt work without internet? but he wrote this:  
on first launch, the app will download the app remotely and as soon as you update one of the files on the remote server, it will be updated in the webapp. boom - store-independent, realtime native app updates.

i dont really know how to this, what and where is grunt-manifest?

---

<div class="post-metadata">

**Author:** ![iwantwin](https://avatars.discourse-cdn.com/v4/letter/i/94ad74/32.png) [@iwantwin](https://forum.ionicframework.com/u/iwantwin)\
**Post date:** [December 16, 2014, 10:22am UTC](https://forum.ionicframework.com/t/modular-app/14184/6 "2014-12-16T10:22:16Z")

</div>

Hmmm… I’ve read through some articles based on your quotes. Here’s what I found:

**What is grunt**? Short version: grunt is a javascript task-runner. From grunt website:

> The less work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting, etc, the easier your job becomes. After you’ve configured it through a Gruntfile, a task runner can do most of that mundane work for you—and your team—with basically zero effort

**How to use grunt**? Check: [Getting started - Grunt: The JavaScript Task Runner](http://gruntjs.com/getting-started)

**What is a grunt manifest**? Grunt-manifest is a grunt pluging. You can check it out here: [GitHub - gunta/grunt-manifest: Generates HTML5 Cache Manifest files](https://github.com/gunta/grunt-manifest)

Grunt manifest generates an appcache.manifest file, you can see some appcache facts here: (referenced from grunt-manifest docs)  
[http://appcache.offline.technology/](http://appcache.offline.technology/)

Hope this helped 🙂

---

<div class="post-metadata">

**Author:** ![BlazingUFO](https://avatars.discourse-cdn.com/v4/letter/b/6bbea6/32.png) [@BlazingUFO](https://forum.ionicframework.com/u/BlazingUFO)\
**Post date:** [December 16, 2014, 10:50am UTC](https://forum.ionicframework.com/t/modular-app/14184/7 "2014-12-16T10:50:32Z")

</div>

Thank you, im going to try it out this way

---

<div class="post-metadata">

**Author:** ![BlazingUFO](https://avatars.discourse-cdn.com/v4/letter/b/6bbea6/32.png) [@BlazingUFO](https://forum.ionicframework.com/u/BlazingUFO)\
**Post date:** [December 16, 2014, 8:39pm UTC](https://forum.ionicframework.com/t/modular-app/14184/8 "2014-12-16T20:39:22Z")

</div>

okay, I’ve been trying all day long and I still got nothing, could anybody explain me how does this stuff work?
