Welcome to the discussion about this lecture. Here you can ask questions or post feedback about this specific lecture.
Keep in mind that if you are a start-up, and you need some kind of product or prototype that you works that you can show to investors and so that you can start building the app and get users as soon as possible - and, most likely you need to raise some money, so to get something started begin with build a quick web app and then launch it on Android and reuse the code to launch it on IOS - by re using the code you can get some users as soon as possible.
In many cases, web apps don’t cut it because a web app doesn’t have hardware access, - you might need to access different features in the operating system that a web app simply cannot do because they are websites and a web app cannot access an operating system to the same extent that a native app can.
In Android Technologies it is similar to IOS in that you can create a native application or a web application - that looks like an Android native application, but it is really a website.
There is a huge difference between Android and IOS when it comes to development.
You cann ot re-use your native code from IOS (in IOS it’s SWIFT and Objective-c and you cant reuse them in Andriod) Instead, you need to start from scratch and write your application in the Androd native codes which are Java (an old fashioned Andriod programming language) or the more up to date Kotlin.
Also, the way you build applications on Android is quite different from IOS which has the whole architecture and the libraries - the different approaches that you have to building the same types of applications are huge differences between Android and IOS.
So you need to have two differnt teams for Andriod and IOS, indeed, several different teams - one team doing IOS and another team doin Android, because the differences are very, very big and the differences in mindset are also very different.
However, if you decide to use a web you can use the same technologies as on normal websites, and as on IOS, you can use either Angular or REACT programing languages, and there are a lot of libraries, which make it easier for you to build, for example, Android applications - basicly Android web applications - the websites then look like Android applications but you are using web technologies.
Then you can easily reuse this application and make it look like an IOS application.
Keep in mind the use cases - the usecases are the same for native versus web.
Native is all about performance, it’s all about hardware - if you want to have very good access to hardware and be very flexible.
Web is very good for re-use and it’s cheaper because you only need one team.
So, if you need to make a decision between Native and web, make your decision based on the use case - based on the type of application that you have.
Building on Android can be a lot more challenging than IOS because you have literally millions of devices - all different types of screens - made by different manufacturers - lots of different hardware - this is one reason why it’s normally easier to develop IOS applications - on IOS you have a limited number of screens and hardware and only one manufacturer - namely apple - apple has very strict control which is good from a development standpoint.
Working on Android can be very challenging - just imagine the testing - application needs to be tested on all devices, which is impossible - therefore most people exclude a lot of devices - they just support a sub-set of Andriod devices and don’t test the rest because it’s impossible.
Testing is difficult in Android than IOS. It’s harder to build for Android, there are a lot more things that you need to keep in mind apart from the range of devices.
The pro’s with the Androd is the customizability because google and Android give you as a developer more control over the device.
You can do a lot of things in Android that you cannot do in IOS - you can access a lot of hardware components that you cannot access in IOS so theree is a lot more flexibility in Android - when you have flexibility and access to hardware, it’s easier to build malware in IOS Apple is very strict - they will not allow you as a developer to access whatever you want, and they will reject the application from the app store if you somehow try to hack and breach their rules.
Ask yourself if you really need to have a mobile app - and you may be able to do it as a web app.
What about React Native? As I understand it allows to write only one code that can be recompiled into native iOs and Android Apps.