Assume that the app will include a back end API and a back end data store, but that they need not necessarily be constructed with the same technology as the front end (the app on the mobile devices). By "technology", I mean programming language and/or framework and/or platform.
There are two sides to that question. One is the mobile app itself and the other is the backend. If I misunderstood in any way and you didn't mean "native" app I apologize in advance.
On the backend, there is no clear cut answer to which is the "best". It depends solely on the developers you are able to get. We for example use Node.js , mongoDB, redis, elasticsearch and a couple of proprietary tools in the backend. But you have your pick of the litter now both on the backend api and the datastore with the myriad of options available and touted as the "best" currently on the market.
Now on the app side again it solely depends on what you need your mobile app to do. Experiencing first-hand "develop once, run anywhere" I can say it's more like "develop once, debug everywhere" to quote a Java saying. We have tried Phonegap and Titanium Appcelerator and we have switched to native (ObjC and Java) after a couple of months of trying to go the hybrid route. The reasons behind the choice are as follows:
- anything that breaks the pattern of how those frameworks NEED to operate is just a huge technical debt that keeps accruing a huge interest.
- anything that uses css3 accelerated animations on Android is buggy at best and slow as hell at worst on any lower (< 4.1 I think) versions of Android
I hope this gives you some insight. If you need/want to ask me anything feel free to contact me.
Mihai
Gosh, there is no one best answer. The answer depends on what you're building. That said, I'm a great believer in rapid development and getting a beta in front of customers fast so you can begin the learning curve journey validated by experience rather than one's projections or suppositions. The fastest prototyping I know of is a combination of Firebase.com for the backend and a more general approach on the front-end to cover more mobile platforms, so HTML5 in combo with Ruby on Rails. Again this is for rapid pilot to fully understand your needs. Once you're sure of platform, I'm still a bit more biased toward native mobile development focusing on delivering an awesome app on iPhone, then porting to Android and others.
After drafting the above answer, I was reading the latest Gartner trends report and found information relevant to the question:
Gartner Identifies the Top 10 Strategic Technology Trends for 2013
Analysts Examine Top Industry Trends at Gartner Symposium/ITxpo, October 21-25 in Orlando
Mobile Applications and HTML5
The market for tools to create consumer and enterprise facing apps is complex with well over 100 potential tools vendors. Currently, Gartner separates mobile development tools into several categories. For the next few years, no single tool will be optimal for all types of mobile application so expect to employ several. Six mobile architectures – native, special, hybrid, HTML 5, Message and No Client will remain popular. However, there will be a long term shift away from native apps to Web apps as HTML5 becomes more capable. Nevertheless, native apps won't disappear, and will always offer the best user experiences and most sophisticated features. Developers will also need to develop new design skills to deliver touch-optimized mobile applications that operate across a range of devices in a coordinated fashion.
Definitely go with PhoneGap. You mention nothing that would make me suggest going full native so considering your lack of experience (and assume no desire to spend extra $$$), just go with PhoneGap: fast, solid & free.
There are some good technologies for Android, iPhone or both. I have used these and I give you my answers in full detail. I would be glad to schedule a call with you to go through some of these if you are interested.
You can develop mobile apps with several great platforms and it depends on whether you develop for iPhone or Android.
The best mobile app platforms and languages that I have used are:
Phonegap - You get a simple HTML 5, Javascript, and CSS platform that gets converted to Android and iOS. The new Phonegap has a bit of a learning curve.
For Android, 2 great platforms and I have used them both:
App Inventor
You can see App Inventor at http://beta.appinventor.mit.edu - It was invented by Google and is now maintained by MIT. You can create both an API and a backend as it allows for both a local and web database. App Inventor is a plug and play platform and uses no code, just a set of blocks that you add logic to various components. It is very easy to use.
Basic for Android: http://www.basic4ppc.com/
This is a platform where developers use Visual Basic to create android apps. If you know Visual Basic, this is perfect for you.
Also, for Android, you can develop in Java and XML using the Eclipse IDE.
For iPhone, you can use good ole Objective C which is a language. There are not as many options for iOS as there are for Android, but Phonegap or HTML 5 may be a good bet if you do not want to learn Objective C.
If you want to use good old HTML 5, you can download Twitter Bootstrap or Foundation from Zurb which are both responsive frameworks.
I would be glad to take you through any of these if you are interested. If you'd like to schedule a call on the phone or Skype, I could show you how some of these technologies work.
Bruce
It Depends :)
For back end ,you need to ask are you looking for scalability ? or just fixed number of users.
What about the data base ? do you need a relational database or a non relational database .. ? if non relational ? Which type ?
Do you need to do analytics ? what type of analytics ?
For front end .. Is this an enterprise app ? Or will be used for public ?
Still I prefer to avoid cross platforms because :-
. Harder to maintain
. Lots of bugs
. Lower performance if compared to native apps
. Doesn't make full use of the hardware and OS platform if compared to native apps.
But this again depends on the complexity of the project and the target market needs. Sometimes the extra value of the native apps is not justifiable.
Again it depends.
If you need more help let me know , to discuss the case in more details to guide you the right way.
Good Luck!
I am a fan of native development as it allows you to build the best application leveraging the strength that is offered by Apple and Android operating systems.
In my opinion on the front end these days in the vast majority of cases you'd be insane to use anything but flutter. If you compare to all the other alternatives you can develop better apps faster. It's very rare I'd consider a use case where alternatives like React Native, Xammarin, Native, Ionic etc would make better sense.
Back end I think gets more subjective especially on the database side where there's a wide range of choices that have pros and cons without a clear definitive winner. The default for databases is arguably Postgres or MySQL but those are far from a definitive choice. Mongo DB is super popular and has a big developer community but suffers under many use cases. Couchbase is arguably better but has a much smaller development community. Cloud Firestore has become a really compelling option but it depends a lot on your use case, you could be Ina situation where a graph database or in memory database makes the most sense, who knows.
Then I'd say nodejs is probably the default server side but far from clear as there's so many other good options depending on your developer experience and use case.
Apps have become as important as essential as elements that shape the human ecosystems called the cities. Without the apps it is not possible to live a healthy life. There are apps for everything, from social media apps, to science apps, from business apps to banking apps, everything around us and every business is run on apps single handed. As India entered lockdown mode due to Covid-19 in March, more and more people logged into smartphone applications for everything, ranging from video-calls to studies to gaming and even shopping. New modes to communicate like Houseparty and Zoom saw the biggest spikes in fresh user installs, given their small base. But established large social media platforms like TikTok and mobile game PUBG (which were later banned by India) also witnessed a 50-80% increase in active users between February and March, according to data from US-based analytics platform SimilarWeb shared with TOI. Interestingly, online shopping applications like Flipkart, Amazon India and Myntra have seen a 40-50% spike in activity even as business crashed in March as more consumers trapped at home browsed these applications to source essentials but were disappointed. Monthly downloads of video-calling application Zoom, which is also being used by schools to conduct classes, have increased 17-fold from 500,000 in February to over 8.7 million in March. Similarly, Houseparty, which is being used friends and family to play games and talk to each other, has seen the number of monthly active users (MAUs) increase about 16 times to 328,000 in the same period. The average time being spent increasing eightfold to 24 minutes, indicating that it is being used multiple times.
Gaming and entertainment applications are not far behind, as everyone has more time on their hands. PUBG — the last man standing in the blockbuster game — has seen MAUs increase by 80% to nearly 19 million. Casual games like Ludo King and Carrom, which many are playing with their families and friends while staying at home, have also increased by 50-75%. Additionally, these games are seeing a more significant increase in downloads as well, indicating that they are getting a lot newer user. Video streaming platform MX Player, which is owned by the publishers of this newspaper, saw a spike of 35% in MAUs.
With all schools conducting classes online, many expect the lockdown to achieve what demonetisation did for digital payments. All start-ups in the space, including Byju’s, Toppr and Vedantu, have announced free classes for users, resulting in record fresh sign-ups. Unacademy, an ed-tech start-up backed by Facebook, said students spent a record 1 billion minutes on its platform in March with growth ramping up further in April. Even the online retail sector, which TOI reported on March 30 is expected to take a $1-billion hit in sales due to the lockdown, are seeing increased user engagement by focusing on just essentials like grocery and infection-control items. But business remains a fraction of the usual size as consumers are searching more for electronics, which accounts for most of the online retail business in India.
To get the users’ attention and make them use your app, you must come up with an app that is trending, which has a user-friendly interface, and the app that matches the current bar of digitization. To do so, one must have a perfect knowledge of the technologies that can help create a user-friendly and robust app. With the correct understanding of mobile app development technologies, the app developers can come up with some unique apps which can do great business.
Mobile App development technologies are as follows:
1. Flutter: Flutter, an open-source mobile app development SDK, is created by Google. It is used for creating high-quality, cross-platform native interfaces for both iOS and Android platforms. Flutter uses Dart to help mobile app developers build native interfaces. Dart is one of the new programming languages. With the flexibility it has in development, it has become one of the broadly used mobile app development technologies. Some of the apps developed using Flutter are Google Ads, Reflectly, Xianyu by Alibaba, and many more.
2. Java: Java, an object-oriented programming language, is an official Android development language. It is a language that is easy to handle. It has open-source libraries that are readily available for users to choose from. Java is a technology that offers the best documentation and community support. With Java, developers can create any mobile application. Frameworks like TestNG and Log4J are developed using Java. Besides this, some applications that are developed using Java are SeeWeather, the VLC media player, Telegram for Android, and many more.
3. Python: Python is a widely accepted programming language. This language is fast, easy-to-use, and easy-to-deploy. Python helps develop scalable web apps. Popular apps like YouTube, Instagram, Pinterest, and SurveyMonkey are all built-in Python. This language provides excellent library support. It has a large developer community. This language possesses strong integration, and it provides enhanced control capabilities. Python provides a high starting point for all start-ups.
4. Swift: Swift is a new open-source programming language for watchOS, iOS, OS X, and tvOS apps that builds on the best of C and Objective C. This language adopts a safe programming pattern and also adds modern features to make the programming more flexible and more comfortable. It is a programming language with the first industrial-quality systems, and it is expressive and enjoyable as a scripting language. Apps like Lyft, LinkedIn, and Hipmunk are some of the apps developed and upgraded in the iOS version by Swift.
5. React Native: React Native is an informative list of mobile app development technologies. It is an open-source framework developed by Facebook. This technology helps the app developers build cross-platform native mobile apps with the use of ReactJS and JavaScript. With React Native, one can develop cross-platform apps with the look, feel, and function exactly like native apps. Some of the apps developed using React Native are AirBnB, Myntra, UberEats, Facebook Ads Manager, Instagram, and many more.
6. Kotlin: Kotlin is a statically typed programming language that is used for developing modern Android applications today. Kotlin is said to be the advanced version of Java. For Android developers, this language is a modern answer to obsolete Java. Kotlin is a language that has influenced some other programming languages such as Scala, Gosu, Groovy, Java, etc. Apps written in Kotlin are Pinterest, Trello, Evernote, Coursera, and many more.
7. R Programming: R programming language is one of the best languages for Data Analysis and Machine Learning. R programming is a platform-independent language. R provides excellent built-in libraries and frameworks that can help you develop powerful Machine Learning algorithms. This language is also used for graphics as well as general statistical computing. Developing R packages is easy for anyone who learns this language. The enterprises are adopting R very well.
Besides if you do have any questions give me a call: https://clarity.fm/joy-brotonath
To begin with, you need to decide on the development method. Basically, there are 3 methods: Native, Cross-Platform, and Hybrid.
The native method means that you develop an app for a specific platform (iOS, or Android). For instance, If you want an iOS app and for 100% sure that you won’t have a need run it on Android - this method is for you. For such apps could be used Objective-C, Swift for iOS case and Java, C++, Kotlin, C# for Android.
Next, Cross-Platform seems to be the most popular solution in mobile app development. That’s because your code is universal and your app can be run on different operating systems without any corrections. So, this kind of development offers faster coding and minimizes the budget needed for implementation and support. To develop a Cross-Platform app, you have to be familiar with Flutter/Xamarin/React Native.
Finally, Hybrid apps are developed with the usage of web technologies such as HTML5, CSS, and JavaScript. There are different tools(Cordova/PhoneGap etc.) that allow you to wrap web code into a “native container” and as a result, you have a more or less standard app.
My company has a wide experience with mobile app development, and dozens of clients for who we built apps for so we wrote an article about the specificities of this process. I’m sure you’ll find it useful: https://kitrum.com/blog/the-best-tech-stack-for-mobile-app-development/.
Good luck;)
Top 6 Mobile App Development Technologies
1. Python
2. Java
3. Flutter
4. React Native
5. Swift
6. Kotlin
There are also so many no-code app development platform is available now
(https://techwink.net/blog/7-best-no-code-app-builder/)
If you want still to develop an app here some hard code app development languages you can consider.
Flutter
Developed by Google, Flutter is an open-source mobile app development SDK (software development kit) that facilitates developers to create cross-platform applications. Yes, you read that right. By using Flutter, you can make an application that runs smoothly on both the Android and iOS platforms. Technology is highly demanded because people these days are preferring cross-platform applications over native applications that run only on a single platform.
The technology uses Dart as the programming language to build native interfaces. It also relieves developers to write the entire code from scratch to develop a single app for two platforms. Google Ads, Xianyu by Alibaba, and Reflectly are the three popular mobile apps developed using Flutter.
React Native
Developed by Facebook, React Native is an open-source framework used to develop cross-platform applications for iOS, Android, Web, and UWP. The apps developed using React Native have native-like capabilities and can run on multiple platforms.
Developers use ReactJS and JavaScript to create applications that witness skyrocketing success on different platforms. Myntra, UberEats, Facebook, and Airbnb are some of the apps that have been developed using this framework.
Choosing the right technology stack for developing a new mobile app depends on various factors such as project requirements, scalability, and the development team's expertise. Node.js is an excellent choice for building scalable and efficient back-end APIs. Its event-driven, non-blocking architecture is well-suited for handling concurrent connections and real-time applications.
For the front end of your mobile app, consider frameworks like React Native for building cross-platform applications with a single codebase, reducing development time and effort. React Native allows you to write in JavaScript and render using native components, providing a native-like user experience.
If you're looking to harness the power of Node.js for your project, Cleveroad's Node.js developers offer exceptional expertise. Their proficiency in Node.js development ensures the creation of robust back-end systems, facilitating seamless communication between your mobile app and server. Explore the possibilities with Cleveroad's Node.js development team: https://www.cleveroad.com/hire-nodejs-developers/