hybrid_apps:alternative_architecture_for_hybrid_applications
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionNext revisionBoth sides next revision | ||
hybrid_apps:alternative_architecture_for_hybrid_applications [2016/07/22 21:36] – created mithat | hybrid_apps:alternative_architecture_for_hybrid_applications [2016/07/22 21:45] – mithat | ||
---|---|---|---|
Line 27: | Line 27: | ||
One obvious requirement is that the chosen language must be able to run on the target host platform. This isn't a significant issue with desktop deployment: typically, at most reconfiguring and/or rebuilding the REST server for each target platform is all that will be required. But it does currently present a problem for mobile deployment as few mobile platforms provide native support for more than one blessed development language. | One obvious requirement is that the chosen language must be able to run on the target host platform. This isn't a significant issue with desktop deployment: typically, at most reconfiguring and/or rebuilding the REST server for each target platform is all that will be required. But it does currently present a problem for mobile deployment as few mobile platforms provide native support for more than one blessed development language. | ||
- | --------------------------------------------------- | + | -------------------------------------------------- |
- | ===== Server ===== | + | [[hybrid_apps:alternative_architecture_notes|Some development notes]]. |
- | * Create test case(s) using PHP and/or Node.js to get an idea of app responsiveness and interaction issues. | + | |
- | * Attach WebSockets, Server-sent events, long polling, or similar to determine client scalability. | + | |
- | + | ||
- | ==== Notes/ | + | |
- | * Persistence: | + | |
- | * Security model alternatives: | + | |
- | * Accept connections only from localhost? CORS? | + | |
- | * Password (in request) or API key (basic auth) property in app? | + | |
- | * Notify and accept (cookie/ | + | |
- | * Firewall | + | |
- | * Embedded (i.e., one-and-only-app) vs. desktop app | + | |
- | + | ||
- | ==== PHP ==== | + | |
- | * Attractive because it facilitates a lot of web developers get into embedded development (i.e., lots of devs know PHP very well). | + | |
- | * What server? | + | |
- | * Is the built-in server good enough for a limited number of connections? | + | |
- | * Is there a native PHP server that is good enough? | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * Bitnami? | + | |
- | * What PHP? | + | |
- | * Can " | + | |
- | + | ||
- | The above are not issues for embedded application as the machine' | + | |
- | * Frameworks | + | |
- | * Silex | + | |
- | * Good community support. | + | |
- | * Good Composer and module support. | + | |
- | * Documentation is a bit obtuse. | + | |
- | * Out of the box twig support. Redbean support is available. | + | |
- | * Has a good ReST code structure but you wouldn' | + | |
- | * Slim | + | |
- | * Slim 3 has removed some functionality that might be good to have. | + | |
- | * Fat Free Framework | + | |
- | * Compact, more than what's needed. | + | |
- | * Excellent ReST code structure. | + | |
- | * Twig and Redbean support are available. | + | |
- | * Not sure Composer is well supported. | + | |
- | * Check cookies/ | + | |
- | * Persistence | + | |
- | * Redbean | + | |
- | * ini and other format file (search Packagist for [[https:// | + | |
- | * [[https:// | + | |
- | * [[http:// | + | |
- | + | ||
- | ==== Node.js ==== | + | |
- | * Doesn' | + | |
- | * There is also a " | + | |
- | * Frameworks | + | |
- | * I don't see much reason not to use Express.js. | + | |
- | * Persistence | + | |
- | * My [[http:// | + | |
- | * My [[http:// | + | |
- | + | ||
- | ==== Python ==== | + | |
- | * Python is attractive because RPi developers will know it. | + | |
- | * Flask and Flask-RESTful are a good combination. | + | |
- | * Has a development server that might be good enough for a limited number of clients. | + | |
- | * Has the " | + | |
- | * Config files and sqlite are TODO. | + | |
- | + | ||
- | ===== Client ===== | + | |
- | * To be served or simply loaded from file? | + | |
- | * I suspect the former is better because of security/ | + | |
- | * If served, by a separate server or by the same server that's handling the API? | + | |
hybrid_apps/alternative_architecture_for_hybrid_applications.txt · Last modified: 2022/06/16 19:57 by mithat