|
|
| (7 intermediate revisions by the same user not shown) |
| Line 1: |
Line 1: |
| − | ==Device Considerations==
| |
| | | | |
| − |
| |
| − | <br />
| |
| − | ===Platform===
| |
| − | Will you be developing for multiple platforms?
| |
| − | * Android
| |
| − | * iOS
| |
| − | * Windows 10 Mobile
| |
| − | * Blackberry 10
| |
| − | * Firefox OS
| |
| − | * Sailfish OS
| |
| − | * Tizen
| |
| − | * Ubuntu Touch
| |
| − | * CynaogenOS
| |
| − |
| |
| − |
| |
| − | <br />
| |
| − | ===Hardware===
| |
| − | * Depending on the device, the specifications of hardware can be very different
| |
| − | * Some devices may not have certain components
| |
| − | * Vintage of components, such as processors and busses will make a difference to the chosen route
| |
| − |
| |
| − |
| |
| − | <br />
| |
| − | ===Language===
| |
| − | * What programming languages are supported natively by the device?
| |
| − | * What language suits what you want to do best?
| |
| − | * Do you need a combination of languages for collaborative tasks?
| |
| − |
| |
| − |
| |
| − | <br />
| |
| − |
| |
| − | ===Form factor===
| |
| − | * Most platforms/OSes run on multiple devices, some more than others
| |
| − | * Can your application be utilised on all form factors regardless of screen/size?
| |
| − |
| |
| − |
| |
| − | <br />
| |
| − |
| |
| − | ==Native vs Hybrid Frameworks==
| |
| − |
| |
| − |
| |
| − | <br />
| |
| − | ===Native Application Frameworks===
| |
| − | Native application frameworks allow developers to access the native platform/OS API directly through code and develop their applications directly to the platform standards and practices
| |
| − |
| |
| − |
| |
| − | * '''Pros:'''
| |
| − | :* Without other intermediate layers, this provides the best application per device in terms of performance
| |
| − | :* There is no third-party dependence on access to updates and bug fixes
| |
| − |
| |
| − |
| |
| − | * '''Cons:'''
| |
| − | :* As a native application is written and compiled for a specific platform/OS, deployment on another platform typically requires the maintenance of a totally separate project for each of the supported platforms.
| |
| − | :* How the application is distributed can be different for each platform, requiring the maintenance of a separate distribution channel per platform
| |
| − |
| |
| − |
| |
| − | <br />
| |
| − |
| |
| − | ===Hybrid Frameworks===
| |
| − | Web-based frameworks are essentially tools/processes/procedures that allow us to write an application as a website rather than using any native code (e.g. PhoneGap/Cordova)
| |
| − |
| |
| − |
| |
| − | * '''Pros:'''
| |
| − | :* Anyone with basic web-development skills (HTML, CSS, JS) can write a decent application.
| |
| − | :* There are several frameworks to choose from.
| |
| − | :* It is possible to wrap the content in an application or just access it with the built-in browser.
| |
| − | :* Applications can be accessible across multiple platforms.
| |
| − |
| |
| − |
| |
| − | * '''Cons:'''
| |
| − | :* Going through so many higher-level languages and interpreters makes run-time much slower than a native application
| |
| − | :* Each platform has a unique style and mode of operation. This gets lost in a web-based application or, at least, requires a lot of work to make it seem intuitive for each platform.
| |
| − |
| |
| − |
| |
| − | <br />
| |
| − | ====[[Cordova - PhoneGap]]====
| |
| − |
| |
| − |
| |
| − | <br />
| |
| − | ====React Native====
| |
| − |
| |
| − |
| |
| − | <br />
| |
| − | ==Android Studio==
| |
| − | https://developer.android.com/studio
| |
| − |
| |
| − | To install Android studio just go to the official web site, download the package and then go:
| |
| − | /android-studio/bin
| |
| − | ./studio.sh
| |
| − | and follow the Follow the setup wizard.
| |
| − |
| |
| − | When I finished the setup wizard I got a message saying that my computer support hardware acceleration for the Android Emulator. To install and configure it you can follow:
| |
| − | * https://developer.android.com/studio/run/emulator-acceleration?utm_source=android-studio#vm-linux
| |
| − | * https://help.ubuntu.com/community/KVM/Installation
| |
| − |
| |
| − |
| |
| − | <br />
| |