React native, Native Script, Ionic to name a few. I don't know exactly if this is what you asked for. Those frameworks are used to develop hybrid native apps.
I would recommend looking at Nativescript (https://www.nativescript.org/). I have been building Ionic/Cordova apps for about a year. Then I found that I can write Javascript/Typescript/Angular 2 (The choice is yours) and with a single code base Nativescript spits out actual native apps for iOS & Android with support for Microsoft coming soon. The framework still needs a little polish in the UI department, but it is something I would at least look into.
I already chose Nativescript for my app primarily because I’m already used to using Angular in large enterprise applications. I like that Nativescript seems to be closer to the metal, so to speak, than React Native.
Air BnB used React Native for thier mobile app but ran into several issues that led them to moving away from it. This article was written by the Nativescript team to answer the question, “Would Airbnb have fared better with Nativescript instead of React Native?”. It’s objectively written and provides some fundamental differences between the frameworks. The Article mentions that React Native isn’t supported in Nativescript... 5at’s no longer true as they’re now working on assembling it, although it’s extremely early days on it.
Personally, I’m a Nativescript fan. I’m constantly learning new tricks and it’s super easy to get started.
Some of the showcases are Vue.js apps: https://www.nativescript.org/showcases
But there are a fair number of Vue.js code samples as well to look at: https://market.nativescript.org/?tab=samples&framework=vue&category=all_samples
https://www.nativescript.org/vue
These are both seem to be newer, but there is the opportunity to use Vue for native as well. React-native has a head start, but I don't think it is a huge advantage.
When it comes to having both web and NativeScript code sitting in the same project, then we use a naming convention, for example: - home.component.html - for the web UI - home.component.tns.html - for the {N} UI Then you just need a build system that can pick up the right file when building the web or mobile project.
You can read more about it here: https://www.nativescript.org/blog/code-sharing-between-web-and-mobile-with-angular-and-nativescript
https://www.nativescript.org/nativescript-is-how-you-build-native-mobile-apps-with-angular
http://angularjs.blogspot.de/2016/04/angular-2-react-native.html
The angular team works really close with the native script team (which is actually faster and has better support in my experience but I only played around and did nothing serious)
edit: Why exactly was I downvoted? Please elaborate
This is not true for NativeScript and is probably a misunderstanding . Lets try to fix it :)
I'm the PM on the NativeScript team - you can see the list of all the cross-platform UI components and all the tools we have on this web page -
https://www.nativescript.org/allfeatures
As you can see there is quite a long list list of components that work cross-platform and you can use all the modern techniques to describe the UI for the application, including declarative -style UI, advanced data-binding, TypeScript, ES6 (using Babel), Angular 2, live reload, etc - everything a JavaScript developer loves and breathes these days.
We are trying to enable all the JavaScript web developer to easily create true native apps without the need to know any ObjC and/or Java language. With NativeScript you can access the entire native APIs without writing a single line of code in ObjC/Java/.NET.
For more code samples of NativeScript you can jump directly to the open source apps - http://docs.nativescript.org/samples
Please do not hesitate to contact me on twitter @ValioStoychev.
Good luck to the ReactNative team - I believe what they are doing with React is awesome and these two frameworks should go hand in hand to shape the future of modern native cross platform apps.
Here is the article, I believe I read. if any one wants to read it:
Yeah now it’s even better, they even have an app that’s really solid (from my limited use) that you download scan a qr code and can see the changes live on that device.
> no pouchdb plugin for NativeScript
Either try the plugin to emulate things that don't exist in Nativescript ( crypto module ) or use this very good solution that supports Nativescript RxDB
If you want to stay working with Vue and share components, give Nativescript a shot - https://www.nativescript.org//vue/index.html
Otherwise, I’d look into Flutter. It’s pretty easy to pickup and supports Android and iOS.
Thanks u/numbershikes! I appreciate you adding this there! If you sign up for iOS you'll have an email tonight or tomorrow. Android will be around 1/14.
I used NativeScript which was great because I was able to reuse a lot of the previously written TypeScript utils and services. There still was a lot of plumbing to do, but it's coming along nicely and moving quick now. And I was able to use my existing API since hikerfeed.com is just a node service that hits my API.
Java. However there is another option called NativeScript that lets develop Android & iPhone apps using those Javascript skills. So it might be worth checking out too.
The NDK is not how you build apps. The Android SDK is cross platform, while the NDK is not. Android hardware is diverse, and you'd have to build fat binaries of native code to support multiple chipsets. Unless you're writing a game or need to integrate third party C/C++ libraries, I think the NDK is a bad idea for general purpose use.
React Native is nice because you can write your app once to a common component model, and you don't have to compile JS to native code, so you don't have to mess too much with a variety of wild different platform toolchains. But if you hate Facebook, they are not the only game in town (I don't know if there is anything to hate about Telerik).
I haven't used it, but I heard about NativeScript. It's a framework to build apps with a normal web-stack (with Angular).
This should work fine for small apps, however, for larger apps, I would recommend learning Java or Swift for native development. Native development has a lot of advantages over these frameworks.
When you say "apps", do you mean web apps, mobile apps, desktop apps, or something else? The "best language" is the one that can do what you want to do!
Personally, I like javascript because it's really versatile. It's basically the only way to build front-end web apps, and you can use it for the back-end as well (using node.js). You can also make browser extensions in JS. And I haven't done it myself, but there's even ways to code mobile apps using stuff like NativeScript (https://www.nativescript.org/).
> I tought RN plays well with opengl
RN only gives you access to UI components and limited access to some native API. No opengl AFAIK. Check the docs.
NativeScript gives you access to UI components but also unrestricted access to all native APIs. Although I wouldn't consider it either for a drawing app where performance is critical.
I'd go native if you just plan on targetting a single platform, or use some game engine or Xamarin + Skia if you plan on going cross platform.
Python - I can make web apps and do almost anything with ease in this language.
JavaScript - I can make web, mobile, and desktop apps with it.
Go - (Going purely on what I've heard and read about it here, no experience working with it) When I need a lot more performance than Python can give me, there's Go. Its very high performance and highly concurrent, and I can write lower level applications in it(not sure about this one, sorry).
>the only way angular will achieve this is if google implements something in android's api
Nativescript already achieves this. In fact, you can read about Angular 2 running in a native mobile app using NativeScript at https://www.nativescript.org/blog/details/angular-2.0-running-in-a-native-mobile-app-using-nativescript
FYI. here is the command you can run on windows to do a "one script" setup.u/powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('
<code>https://www.nativescript.org/setup/win</code>'))"
Run this in command prompt and be sure to run as admin
Side note from a fellow nerd: if you want to make this app be a thing for not just iOS users, but also Android users take a look at Nativescript (https://www.nativescript.org/)
Good luck on your project!
NativeScript
I’ve actually been using it for several years. I build software for other businesses, our clients, with a small team of devs. Our focus is the speed that we can build robust, enterprise grade apps, including a design-led process whereby we start with UX, UI design systems in Figma.
NativeScript allows our Typescript/HTML/SASS to talk directly to the native device APIs and any native plugin that there is for those platforms.
Even a brand new plugin released just as I’m writing this sentence: it’s already supported in NativeScript.
It has some sort of magic utility that will insta-wrap native code with typescript/JavaScript with full type definitions for tooling support in VSCode. It’s crazy good.
One day, you may even want to build a little iOS plugin yourself and then import it into your your NativeScript apps. No problemo. Now you’re in NativeScript you can go on sharing your other business logic, repos, data models, etc. with your web project, nodeJS project, Electron project, etc.
This compares NativeScript with a few other technologies: https://www.nativescript.org/blog/nativescript-and-xamarin
NativeScript, my friend. It introduces you to the world of component-based architecture which is fantastic for anyone learning front-end or app development. https://www.nativescript.org/
Angular uses TypeScript which ultimately compiles to JavaScript, so Angular could be used for all 3 of your target platforms.
You can freely run .Net on your server to support your client-side code. Your .Net code will include HTTP API endpoints for your client-side code to call - either to fetch data or save data or both.
Because Angular is ultimately native JavaScript, you could use the Apache Cordova framework to build your iOS and Android apps from your single codebase.
Edit: although maybe you should also review NativeScript as it leverages TypeScript but also gives access to native (non-javascript) functions on the phones which will make your apps faster. https://www.nativescript.org/
Nativescript runs on the V8 javascript engine and as far as i've understood, there's only one thread to execute everything your app does. Logically this result in slow progress on heavy loads. When i've experienced this i've considered the following,
Hope this might inspire to solve your problem.
Nativescript developer wrote a response to that and it addresses most of those concerns I think https://www.nativescript.org/blog/would-airbnb-have-fared-better-with-nativescript-instead-of-react-native
Can you explain how it's a square peg problem? Nativescript uses the platforms JavaScript engine to directly create calls b/w JavaScript and the native components. React native is similar but not exactly the same. Because of this nativescript is exactly like a native app and has access to all system apis. This doesn't imply you can write apps without knowing the platform but you can have pretty much the same code base for web and mobile, which I think will be the norm going forward ...
The thing to do is learn the frameworks needed for doing these things.
You want to make a phone app? How about an app that you could cross compile for both iOS and Android?
I recommend vue.js and typescript https://www.nativescript.org/vue
Even if you don’t want to use that, the first things to do are the same: 1) identify a framework that will allow you to do what you want and 2) learn the framework by building a “toy” app before trying to make the real app.
Have you looked into Nativescript? IMO its the best for native mobile angular applications.
Edit: sorry i didn't really fully read your post as i saw iconic and assumed you were referring to a mobile app alongside the web app. For a web app, there's no reason to use anything else besides angular material IMO. There's always the trusty bootstrap (which i have used in angular myself but not by choice), but i see no reason to look further than angular material if this is just a web app.
At the end of the day if you're developing for iOS you're going to want to have a physical iOS device to test on. If you're on a mac, you can use the iOS Simulator provided by Xcode. If you're on windows, there is a product called NativeScript Sidekick that will at least do cloud builds for iOS.
This is incorrect. NativeScript HomeKit works with Siri. NativeScript, ReactNative, and Flutter create actual native apps. So, they can do anything and everything an app built with Objective C, Swift, Java, Kotlin, etc. can do. But, when new features for Android or iOS are released, it usually takes a few weeks before they catch up.
You're correct that anything in a web wrapper can't access native functions, tho. So, the likes of Ionic, Cordova, PhoneGap, etc. are limited in that respect.
With a web background you know HTML, CSS and Javascript (and PHP). You can use your Javascript knowledge with some frameworks which develop in Javascript then compile to mobile.
Two to get your started looking are React Native and NativeScript.
If you mean you want to use something to build mobile apps then there's NativeScript, which offers Vue integration. If you definitely want to use React Native I don't think you'll be sending user data to Facebook.
Ah, didn't notice that -- there are third party add ons that address some of the more complex UI issues. Another option might be NativeScript, but it's a little out of the wheelhouse for C# developers. https://www.nativescript.org/
You could achieve this in CSS if you were to serve a web app using something like nativescript https://www.nativescript.org/ but obviously that requires web dev skillset and has its pros and cons
I'm thinking about using https://platform.uno/ or https://www.nativescript.org/nativescript-is-how-you-build-native-mobile-apps-with-angular as the best two ideas now. Write once and have mobile app + mobile web available.
I'm actually not sure but here is a blog post by NS about publishing to both app stores. Fair warning, I haven't gotten that far, but had this saved in my bookmarks for when the time came.
​
I know I used to download a third party emulator to play Gameboy games on my iPhone 5 -- in the years since though, I think Apple has changed the permissions for this ability.
I'm in a similar situation, and while I don't have a full answer for you -- if you have any background with Javascript, take a look at Nativescript. It seems to be a useful framework for building mobile apps and they offer Sidekick to help with development testing. This seems like the path I am going to take and it may be of use to you as well.
​
Best of luck!
This was absolute garbage. The author obviously has a bias against Vue. I don't use Vue, but I can tell BS when I see it. 1. Author says React uses JSX while Vue only has HTML templates. Wrong. You can use JSX with Vue as well. 2. Author claims React provides Flux architecture. Flux is not part of React but was a approach to state management in the time before Redux, Mobx, etc. Vuex is the recommended way of managing state in Vue inspired by Redux, so it's similar. But you could also use Mobx or any other means you care too. 3. Author claims React can make Web and mobile apps, whereas Vue is only suitable for Web apps. WTF??? Ionic offers full support for Vue for creating native apps. Similarly, if you want to writer you native mobile app with NativeScript, there's full Vue support as well: https://www.nativescript.org/vue. 4. The author claims that React is suitable for large scale enterprise apps but for some reason Vue is only suitable for small apps. WTF??? What did the author base that conclusion on? There are many enterprises that use Vue. In fact, Laravel, which is a PHP framework for creating enterprise apps, comes with Vue pre-installed: https://laravel.com.
Hey,
Is there any reason why you are using Vue Native instead of Nativescript-Vue?
I personally think the latter is much more mature and they are now officially supporting Vue.js.
There is also a relatively large marketplace and social login is just a plugin away.
We hear you. We've been experimenting (struggling?) to find and promote the best place for public community involvement.
Slack is wildly popular, but as you say, there is effectively no memory. Problems are solved, but solutions are lost.
Our old discourse-based forum was decent, but we had a fractured community between there and Stack Overflow. So we decided to close down the forum and try to move to SO.
Is there a reason why Stack Overflow wouldn't work in the long run? It seems as though {N} folks aren't gravitating there, and we are trying to understand why.
That’s a perfectly valid reason OP. I say go grocery shopping on some of these technologies and choose what’s best for you.
I made the choice to use NativeScript over react-native from this article. https://www.nativescript.org/blog/would-airbnb-have-fared-better-with-nativescript-instead-of-react-native
Hope this helps!
Can you make mobile apps with Javascript
​
Yes there are a few libraries around designed for this, React Native and NativeScript to name two I have used.
I think there are a bunch:
android.Activity
if you wanted), greater flexibility in ecosystem as a result.There are more nitty gritty stuff, but the thing is NativeScript-Vue is a relatively new library but built on a rock solid base (Nativescript). I built a client-facing application with it within the last 3 months (I was using 4.0) and it was so easy to get started and productive with, it was insane.
I'm confused...
When I go to:
https://www.nativescript.org/roadmap-and-releases#releases
it still says "v5.0 Oct 2018 In development"...
HAS 5.0 been released as stable, current, or is it still in development and/or rather shaky?
You could take a look at NativeScript with Vue. They claim native apps (no Web Views), but just seen it recently so never tried it.
Here's an article about it: https://developer.telerik.com/products/nativescript/native-ios-android-vue-nativescript/
And NativeScript: https://www.nativescript.org
NativeScript Sidekick allows you to build for iOS without a Mac.
React Native's Expo SDK will allow you to test and publish your app through the app store, even if you can't compile it yourself.
Both of these are cloud solutions that allow you to write a cross-platform app using popular Javascript frameworks.
They both also rely on native platform bindings, so while it won't be 100% like writing two separate apps on Kotlin and Swift respectively, you'll get most of the way there performance-wise without too much penalty.
If you plan on building a web version of your app anyway, I strongly recommend going with a Javascript option.
A big company can afford to field three different teams for three different platforms; you can't. And we're long past the days of having to deal with Cordova-type shit.
React Native has been battle-tested for social media platforms. (If you're reading this from reddit's mobile app, then you're reading it on React Native).
I'm not as sure about NativeScript's overall usage, but it's the more flexible of the two options, since you're not beholden to a single framework.
That's a good question. I have seen Framework7; That's pretty cool. But when I was choosing - I settled for http://phonegap.com/.
You probably already know that one as it's extremely mature.
Very recently I've started using https://www.nativescript.org/. You essentially build HTML5 apps and they convert to native apps. You write TypeScript using the HTML5 and JS API. It is quick, free and extensive it seems.
Optimizing app loading time with Angular 2 Lazy Loading
Optimizing app loading time with Angular 2 Lazy Loading
Optimizing app loading time with Angular 2 Lazy Loading
BTW OP another option you might consider is NativeScript.
It's the same idea behind RN, a JS runtime that triggers stuff in the native side, but it's more mature and if you wish to you can call any native API directly from JS / TypeScript without the need of a wrapper like RN does.
Angular 2 is now official, and so are we
Announcing NativeScript Code Samples
It's not really ideal, but should be possible (though it'll probably be a pain to make everything look good).
If you're open to other stuff, you could try NativeScript which is made for app development and completely free. It's pretty easy too, and learning JavaScript seems like a way more useful skill than learning Java right now, not to mention it also works for iOS pretty much out of the box too.
NativeScript 2.0 -Sharing Code Between Web and Native Apps
NativeScript 2.0 - the best way to build cross-platform native mobile apps
N is for NativeScript at ng-conf
I am hardly an expert on this and I have only briefly played with NativeScript.. I think that it is an upcoming viable platform that isn't quite there yet. Some more detailed thoughts:
-Brent
Are you doing this for a senior project in Highschool?
Learning how to build an app in less than a year will be a challenge. It's not impossible, but don't expect it to be easy. iOS and Android apps both use different languages: Swift or Objective-C for iOS and Java for Android (there are some frameworks that allow you to write apps in other languages, like NativeScript which allows you to build apps with Javascript).
My suggestion is to build as close of a working prototype as you can. You'll learn about APIs (probably using something like Google Maps API) in the process. If you can't get it entirely built, you could probably draw up a design of the interface/UI components and describe how the app would function, drawing support for your design decisions from other successful apps within the same realm.
Also, for a project like this, my two cents is to find a mentor who can answer questions you will have. If your mom isn't a developer, she won't really be able to solve your biggest headaches.
Depends on the setup. If you use Native Script on your mobile app, you can use all your web frontend code in a hybrid like environment, which compiles down to native code. This is done at a place I work. The AngularJS code is being used with Native Script to create a hybrid app that compiles down to native code for iOS and Android.
Google it man. It's a total nerd boner.
Edit: To be clear, the API that powers the web app now powers our mobile apps thanks to the transition to Native Script.
^ this. and in case those aren't good enough there's also PhoneGap and NativeScript. They're essentially doing the same thing - letting you build for mobile using the languages you've already learned (HTML, CSS, JS).
That being said, it's not too late to start learning Java. Although Android is probably not the best starting point for Java itself, it does have some extensive guides and tutorials.