Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I have a 3+ years experience in web development and developed few small app in Ionic and Phonegap. But now I jitter to develop a large app in hybrid app instead of native.
You should consider many aspects when developing Hybrid Application:
1. Performance
Hybrid app suffer in performance, though a framework like Xamarin have close to native performance, we still get an app that not 'so fast' when we have a little low performance here and there.
2. UI
If you want to create an awesome user experience, the native app approach would be better. A hybrid app can never match the level of creative user experience that you get in a native app. However, this doesn’t mean that the user experience of a hybrid app is bad. A good front-end developer in hybrid app can get close to a native experience, but it’s a far stretch.
2. Maintainability
Hybrid framework proudly tell us that we only need to maintain one project for Android, IOS, and other. But behind the curtain, we can't developing happily without touching the native aspect of app ecosystem. For example, UI in Android and IOS have a different look and feel and also have a different handling. So, instead maintaining one project, we end up maintaining one project + the other app ecosystem. This not really good for the long run.
Read more at:
Hybrid vs Native Mobile App. Decide in 5 minutes!
Lessons Learned From 5 Year of PhoneGap/Cordova Development
Why I don't Recommend Xamarin For Mobile Development
Cross platform development can be a time saving opportunity if you already master either web development (apache cordova) or C# (unity, xamarin).
It could be too long to learn java, xml, swift, sqlite and IDEs such as xCode and Android Studio.
Most functionalities can be handled by cross platform solutions and most APIs are supported.
The size of the app isn't important in order to make a decision. Functionalities implied are.
Not sure what kind of "Large App" you are after, but in general perspective you can use Xamarin for building native apps with single codebase and cross platform support.
Do one thing, making hybrid app don't take longer time. so make hybrid app and make it live till den and start working for native.
it's ok you can use hybrid app but as you know there are limitations in hybrid app.
if you want your app fully functional in your way you should go for native , otherwise hybrid is fine.
To add up to all the above points, cordova official documentation suggests cordova applications to be a single page application for better performance. So if you gotta develop a larger app, you need to check whether you can manage it as a SPA.
You can checkout the official documentation to decide which approach to take based on your requirement.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I recently learnt ReactJS and am getting adept at building web apps with it. I want to now build mobile apps (Android and iOS) using the new-found knowledge.
Is it sufficient for me to learn React Native to do that? And not have to learn Swift (iOS) and Java (Android). It seems logical that React-Native is the path of least resistance to get mobile apps going since I have no prior experience with mobile app programming.
Am I giving up anything by not using the native / traditional stacks for iOS and Android?
Thanks,
- deepak
One must understand why React Native is a thing in the scene. You can start development for mobile with your existing knowledge. You will proceed with the least amount of friction. Actually one who has been doing React for a while can start right away.
But there are downsides to it too as every technology has.
You might encounter situations(less likely) in future where you will want to use platform APIs. Developers who do not have knowledge of Objective-C or Swift and core libraries cannot start building native modules on their own.
Actually a technology must be selected on the basis of the team, time constraints and app requirements.
Do not just limit yourself to a particular technology. And as a developer your full time job should be to learn new technologies.
Do not get afraid of missing out on something.
Well, I have been developing iOS and Android apps natively by Obj-C, Swift and Java for last 8 years. Recently, a few months ago, I started, learning React Native to develop some cross-platform apps.
Honestly speaking, it doesn't matter if you never develop iOS or Android app natively, but if you have previous experience then working for mobile devices you will get some advantages.
Using react native, you can develop feature riched application without issue and I guess in rare cases you may need to develop some native component and glue it with react native.
Just learn react native with expo, and start building, over time you will get the whole picture of mobile apps development. You no need to learn native way to develop apps.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I'm trying to create an app for Andriod and IOS, but i have no clue how to do the front-end and have a hard time deciding to use HTML5, CSS & JS or Objective objective C/Java.
I'ts going to be use network options, checkout-features, joined checkout-features. Maps api, facebook api.
I've got expierence in HTML5, CSS3, SASS, PHP and JS.
I've tried looking online, but i've still got no clue how to do the front-end for app.
To answer your question, you will use framework like phonegrap, Titanium Appcelarator and I guess you can use NativeScript, Ionic, Framework7 as well. For Titanium, you have to use different environment for different app (OSX for iOS products and OsX, Windows or Linux distros to run android app) and have it's own syntax and everything. Language is one of Javascript versions (I am guessing, I have used it once 2 years ago). And Phonegap and other Frameworks use a varient of JS, so basically you will have to use HTML and CSS to work with UI. However, you will face some hardware constraint like unable to access hardware buttons (from my experience with one project some months ago) and memory management and other functionalities will mostly depend on your JS coding skill.
[My opinion] I believe, the best way to develop an app is to develop in its native language/framework. I believe it. Unless you're bound to use Html, JS to build app (you can!), don't use those. Java is there to help you with Android Development, since I am an developer, I can tell you that starting might seem a bit difficult than iOS development. But in the end, communities like stackOverFlow and thousands of thousands blogs will help you. Same case for iOS app development. You can find lots of different tutorials. New Bostons tutorial helped with android however, it's contents are bit old (android 2.3) and mostly everything has changed since. However, you can check his iOS app development with Swift. Learning a new language is mostly like learning how to ride bicycle. If you can know how to ride, keep learning the advance parts after basic mechanics, you can become a pro one day. However, for that you have to pass a whole cartoon of hurdles (unknown bugs, sleepless nights to name a few) like the falls you did when learning how to ride.
I would really suggest you to focus on building a real stack.
Happy coding!
For android:
I would recommend using Android Studio.
It is a powerful tool for creating an android app - the front end can be implemented by dragging and dropping items or by using xml.
It is easy to use and there a lot of tutorials online.
I'm an iOS developer on the native side. If you want to do native development, I would recommend Stanford course CS193P by Paul Hegarty. You can find this course on iTunes U, Coursera and other MOOC platforms. For advanced features, follow a GitHub repo called "awesome-ios" where you'll learn some production level stuff for iOS apps. If you want to do hybrid apps, have a look at PhoneGap, Ionic, React.
In either case, you would be able to implement features you've described in your question.
Tools needed for Native Development: a machine which runs macOS and Xcode(free download from app store).
I started developing native apps years ago. The last 2 years I've been using only hybrid possibilities. Designing and developing an app in HTML / CSS / JS is much easier and more efficiently.
I recommend taking a look at Phonegap, Ionic, Framework7. These are open source and there are already some templates.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Three years ago I explored the option of using PhoneGap for one of my app developments. I found it extremely hard at the time to integrate with Facebook and connect to the camera and read a barcode. I ended up giving up and writing the app natively - and don't regret it.
But three years are past and I am wondering if I should be looking at this possibility again. I need JSON communications with my backend, facebook integration, swipeable cards (like tinder) and internal persistence.
I've noticed that the big players currently are:
Sencha
PhoneGap
Appcelerator Titanium
Corona
Xamarin
Did I forget any?
So, is anyone using any of the frameworks I've mentioned below and could tell me how mature they are these days?
Thank you
I am biased towards Appcelerator Titanium because I've been using it for years, however, I would still highly recommend it.
PhoneGap, Sencha and Corona basically all are website wrappers for your mobile phone. They do offer API support for stuff like camera, but it will still be HTML. HTML on a phone will always run slower than native implementation. Although you might not always notice it as a user, as a developer you need to spend a LOT of time optimizing so users will not notice it.
Xamarin I do not have experience with, but I heard is is basically Titanium, but a smaller community and much more expensive. I would consider that a no-go as opposed to Titanium.
So, I would recommend Titanium. But even though you build the app in JavaScript/XML it still will be compiled to use the Native API's, and the UI is actually native code manipulated by JavaScript in the backend. All UI interactions and building of UI will happen on native ground and will be much quicker.
Another alternative you haven't mentioned is React Native. Also in the same space as Titanium and Xamarin, but I personally do not really like the code structure for it. Titanium (by using Alloy, not classic) is pretty solid, and MVC.
Be sure to check out the following slideshow:
http://www.slideshare.net/joshcjensen/connectjs-2015-building-native-mobile-applications-with-javascript
It gives you a good overview about Titanium, Native Script and React Native.
And its good to know, that Appcelerator is creating "Hyperloop" (demo code: https://speakerdeck.com/fokkezb/titanium-develop-native-mobile-apps-with-javascript?slide=19 ) and there is a preview already. That allows you to use native code in Javascript without creating external modules and gives you even more system access.(use xcode projects inside your app, use CocoaPods, ...)
Sencha is really good Framework to make cross plateform web mobile and native application. You can go with this but before gone through you should read about this.
https://www.sencha.com/
https://www.sencha.com/business-web-applications-why-sencha/#developers
Intel’s Multi-OS Engine is a technology that enables developers using their Java expertise to develop native mobile applications for iOS and Android on Windows and/or OS X development host machines without compromising the native look, feel and performance. This technology is a stand-alone plug-in that can be integrated into Android Studio.
It's free and let's you write code and create UI easily in Android Studio. You can generate API for 3rd party libraries in Java etc.
More details and the download link are here: https://software.intel.com/en-us/multi-os-engine
One more tool it called XDK. The Intel XDK cross-platform development environment enables software developers to develop, test, preview and deploy HTML5 web and hybrid apps: https://software.intel.com/en-us/intel-xdk
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I'm a web developer that is new to mobile app development and need to start a project asap. Despite researching for the last few weeks, (I have listed what I've done so far at the bottom of this post) I still have not decided between Phonegap or native (for iOS/Android only). Googling “Phonegap vs native” and the like seems to give results with a fairly even split, but there seems no doubt that native will give a faster / better end result, but at the expense of having to learn so many new things in a short timeframe.
One common thing cited about Phonegap is that is runs slowly – but I have also read that since V3 it now runs much faster – is this the case?
The app I need to build is really pretty much like a mobile static site (but the customer insists it must be an app) – just text and a few images and some PDFs. There will be new content added like news, so I was thinking rather than release a new app version for each new item, the app will fetch new data from a web API (JSON or XML) and finally a requirement for push notifications.
There will be no need to access the camera, GPS or any other hardware (bar the file system to cache images/PDFs).
I've looked at similar apps (the competition) and they all appear to make extensive use of web views, which might suggest they were made with Phonegap (or would it?).
So my question is, given the simple type of app I need to do, would there be a big benefit in going native for this, or would Phonegap (latest version) work just as well. Or on the other hand, since it is a simple app, would it be easy to do (i.e. from zero to both app stores in 10 weeks) in native?
I do have a mac with ADT/Xcode installed so that is not a factor in the choice.
My research so far.
Followed the Android getting started to here http://developer.android.com/training/basics/actionbar/styling.html but got lost with the tabs
Then got a book, SAMS teach yourself android in 24 hours, on about hour 6
Followed iOS to here https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/ThirdTutorial.html#//apple_ref/doc/uid/TP40011343-CH10-SW1
Several Phonegap tutorials such as http://coenraets.org/blog/phonegap-tutorial/ but all seemed to have issues getting them to work as is.
Clearly native has some benefits over the web frameworks like phonegap. But the thing is what you want & need? If you want a quick solution then phonegap is best for cross platform. You can do it in easy way for all common platforms. But if you want your app to be fast & efficient, of course native has it's benefits.
Given your requirements, phonegap could be better to serve your purpose. You can continue with same code, and exact same design for all platforms. Not only for ios and android, but also with windows phone, amazon fireos etc.
One of the thing is that there are thousands of app building in phonegap these days, so it can be told that it meets with the expectation to a certain extent. Phonegap is efficient enough to fill these apps' terms. With proper use of frameworks like sencha, jquery mobile, kendo UI and many more phonegap can be highly efficient.
I don't think it's possible for anyone to tell you that if the app could be completed in 10 weeks in native apps or not. I would go for phonegap to continue with same design and same code. It would be easy to make change in the app if needed in future. But decision have to be yours based on the issues and requirements :)
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I want to develop a simple App for iOS, Android and windows phone.
I just wondered that a simple HTML5, JS and CSS combination can work in all of these platforms.
I want to know which one will be efficient?
No problem with time and coding. But if i can achieve everything with HTML5-JS itself, i will chose Hybrid development. I want to know the major difference between the Native and Hybrid Development with example(I know that the main difference is HTML5-JS supports cross platform).
Note : I am not making a game app.
In my experience, these cross-platform solutions like PhoneGap and others never really hold up to expectations unless the app you're developing is super simple. Even basic things like transitional animations and small UI tweaks will be an uphill battle using these tools.
Native development might take longer (if you're building an app for more than 1 platform), but the advantage is that you get full control over what you're making. Performance-wise, native development is still, and will probably always be, far ahead from cross-platform development, simply because it doesn't have the overhead of being nested within a browser, or any other run-time interpretive platform.
Also, from my experience, the myth of being able to write code once and have it work on all platforms instantly is a sort'v holy grail. Many people claim to have achieved it, but you will always find yourself writing platform specific code (in the form of "if explorer, if safari, if chrome" etc).
My advice, write a solid architecture for your app. Build the app once in one platform, work out all the glitches in the design, then copy the design to other platforms. It'll take you a little bit longer, but the strength of your app, and the flexibility to add / change features and other small things in your app will be worth it.
As an example, take Facebook. Their previous app (if you remember) was a cross-platform app. It was slow, non-responsive, would crash all the time and was practically unusable. About a year or so ago, after countless complaints, they released an update with their native app, and suddenly, all those problems disappeared (well, at least most).
The main difference is about UI component which is the main thing in an app. You can't achieve the native look and feel like native dialogs, notifications and native animations in a Hybrid app.
I want to know which one will be efficient?
Efficiency is not an issue, Hybrid app will be a single app that will support multiple platforms which is cost and time effective.
PROS of Hybrid app
Cost effective, A single app will be developed thereby saving cost
paid to developer for making app in different platform.
Time effective, Time will be saved for making different app for
different platforms.
Will Update very fast, Unlike you update from google playstore the
app will be updated on the server end only and you do not need to
re-install it again.
Smaller in size. As the resources used for support of multiple
screens will be handled by HTML .
CONS of Hybrid app
No look and feel like native app.
App will not even show static behaviour, if server is down.
If you are willing to compromise with the UI , Then you should go with Hybrid app.