I agree with John. For the most part, Flutter has been easier to maintain as time goes on when comparing to react native. And in the landscape, the people at Flutter appears to be very active with the framework, a lot of things cooking. Flutter web is very new, but it'll only get better, more stable.","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2022-02-25T15:48:21Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231777036008618","fans":18190,"name":"Flutter","path":"/flutter","slug":"flutter","title":"Cross-platform mobile framework from Google","votes":1175,"stacks":16867,"imageUrl":"https://img.stackshare.io/service/7180/flutter-mark-square-100.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/flutter","followContext":null}],"upvotesCount":5,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"107859391369351645","link":null,"user":{"id":"104484625585278415","path":"/jproffer2716","title":"Architect","imageUrl":"https://img.stackshare.io/user/659165/default_9c9ba88fd5ce7715c9a10231548ab7e1f1493fbc.jpeg","username":"jproffer2716","__typename":"User","companyName":"","displayName":"John Proffer"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"107859391369351645","services":[],"createdAt":"2022-02-25T15:41:41Z","fromTools":[],"viewCount":31779,"__typename":"StackDecision","bookmarked":false,"rawContent":"For the most part, Dart/Flutter is a great choice for cross-platform application development. The platform is developed by Google, and will be around for a long time. Unless you need to do very low level stuff, like bluetooth tethering or 3D drawing, flutter should be able to handle anything you need it to. ","htmlContent":"
For the most part, Dart/Flutter is a great choice for cross-platform application development. The platform is developed by Google, and will be around for a long time. Unless you need to do very low level stuff, like bluetooth tethering or 3D drawing, flutter should be able to handle anything you need it to. ","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2022-02-25T15:41:41Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[],"upvotesCount":4,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"108017108620762901","link":null,"user":{"id":"108016711933438975","path":"/adventures92","title":"Associate Director Engineering","imageUrl":"https://img.stackshare.io/user/1160556/default_c896862e080de5ff05145c19f81701705755af9c.jpg","username":"adventures92","__typename":"User","companyName":"Sunstone Eduversity","displayName":"Anand Verma"},"draft":false,"topics":[],"company":{"id":"108012421956763868","name":"Sunstone Eduversity","path":"/companies/sunstone-eduversity","slug":"sunstone-eduversity","imageUrl":"https://img.stackshare.io/company/173009/default_05eded56598850f7cf04974a87500a08ba90dcab.png","__typename":"Company"},"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"108017108620762901","services":[],"createdAt":"2022-03-25T12:11:15Z","fromTools":[],"viewCount":13817,"__typename":"StackDecision","bookmarked":false,"rawContent":"We also had the same discussion, but ended with **Flutter** cause of it's great community support & great set of packages.\nAlso achieving calling native feature is super smooth. And **Flutter** support Web as well while **React Native** don't.\nLearning curve is also a great point to choose flutter all doc's official videos are super rich to help you out. \n","htmlContent":"
We also had the same discussion, but ended with Flutter cause of it's great community support & great set of packages.\nAlso achieving calling native feature is super smooth. And Flutter support Web as well while React Native don't.\nLearning curve is also a great point to choose flutter all doc's official videos are super rich to help you out. ","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2022-03-25T12:11:15Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[],"upvotesCount":1,"commentsCount":0},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"Mw","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"107812828068438724","services":[{"name":"Dart","imageUrl":"https://img.stackshare.io/service/1646/Twitter-02.png","thumbUrl":"https://img.stackshare.io/service/1646/thumb_Twitter-02.png","__typename":"Tool"},{"name":"Flutter","imageUrl":"https://img.stackshare.io/service/7180/flutter-mark-square-100.png","thumbUrl":"https://img.stackshare.io/service/7180/thumb_flutter-mark-square-100.png","__typename":"Tool"}],"fromTools":[],"viewCount":191654,"__typename":"StackDecision","htmlContent":"
Hi, I'm considering building a social marketplace app on android, ios and web, Flutter seems to be a good UI framework for cross-platform apps, it's safe type, hot reload, and native compiling on native machine code (thanks to Dart). \nMy question is, for an MVP product is it a good choice? if yes, will it be on the mid-term, long term? Or will I have to change as the users grow? \n\n
thank you ","publishedAt":"2022-02-17T10:20:01Z","decisionType":"getAdvice","subjectTools":[{"id":"101231777036008618","fans":18190,"name":"Flutter","path":"/flutter","slug":"flutter","title":"Cross-platform mobile framework from Google","votes":1175,"stacks":16867,"imageUrl":"https://img.stackshare.io/service/7180/flutter-mark-square-100.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/flutter","followContext":null},{"id":"101231774544144572","fans":34384,"name":"React Native","path":"/react-native","slug":"react-native","title":"A framework for building native apps with React","votes":1156,"stacks":33566,"imageUrl":"https://img.stackshare.io/service/2699/KoK6gHzp.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/react-native","followContext":null}],"upvotesCount":11},"__typename":"StackDecisionEdge"},{"node":{"id":"107790990384881973","user":{"id":"107733103969351243","title":"Founder","imageUrl":"https://img.stackshare.io/user/1125832/default_a5fe6cd9a137cc48c11f401c1833e385d67c6479.jpeg","thumbUrl":"https://img.stackshare.io/user/1125832/thumb_a5fe6cd9a137cc48c11f401c1833e385d67c6479.jpeg","username":"aarav","__typename":"User","companyName":"Orbiting","displayName":"Aarav Varma"},"stack":{"id":"107790969609805576","name":"Orbiting","path":"/orbiting/orbiting","owner":{"id":"107790955479510875","name":"Orbiting","slug":"orbiting","imageUrl":"https://img.stackshare.io/company/172528/default_c83369921fb4c6544f447abb970e4501ff36be1c.png","__typename":"Company"},"private":false,"imageUrl":"https://img.stackshare.io/stack/977743/default_1c83dd63317c46b5f880d1086a153e9ef6e47993.png","__typename":"Stack","identifier":"orbiting/orbiting"},"topics":[],"answers":{"count":3,"edges":[{"node":{"id":"107803102588444125","link":null,"user":{"id":"106658021151697495","path":"/saamer","title":"Founder","imageUrl":"https://img.stackshare.io/user/996829/default_daf23da168734205720da7622a1f438adc93d001.jpg","username":"saamer","__typename":"User","companyName":"The First Prototype","displayName":"Saamer Mansoor"},"draft":false,"topics":[],"company":{"id":"106658066081567759","name":"The First Prototype","path":"/companies/the-first-prototype","slug":"the-first-prototype","imageUrl":"https://img.stackshare.io/company/169846/default_08e9a98eaa396fb1e7f3ffd793b94e0226524761.jpg","__typename":"Company"},"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"107803102588444125","services":[{"id":"101231776330013459","fans":961,"name":"Expo","path":"/expo","slug":"expo","title":"Build one project that runs natively on all your users' devices","votes":66,"stacks":720,"imageUrl":"https://img.stackshare.io/service/5795/default_683a3de22a6983c41f27b04348f4c7380c5e3c21.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/expo","followContext":null}],"createdAt":"2022-02-15T17:06:42Z","fromTools":[],"viewCount":30173,"__typename":"StackDecision","bookmarked":false,"rawContent":"We have experience with React Native, Flutter or Xamarin, the lion share of the native cross-platform tools used. They all allow you to create very good user experiences. You can check their reddit pages to see the beautiful designs people recreate.\nI highly recommend using cross platform tools vs native if your app has generic functionality that doesn't use advanced functionality of the app like VR/AR. So, for something like a dating app without those features, you would probably be better off with cross platform native instead of single platform native (swift/kotlin).\nIf budget is low, a lot of companies have success just using @{Expo}|tool:5795| (a framework on top of React Native). It limits you further, but it's the easiest and most affordable to find developers with. Eventually you might decide to move away from it, but at that time ou ll have a lot more money and react native will be an easy tech to move towards.\n\nXamarin is the oldest of the cross platform native tools and so there's a lot more documentation and supporting libraries. \n\nFlutter is super fast & fluid, and since it uses pixels(skia), it's even more performant than all the other technologies including native single platform. But it doesn't come with the amazing libraries that Xamarin and React Native is able to leverage","htmlContent":"
We have experience with React Native, Flutter or Xamarin, the lion share of the native cross-platform tools used. They all allow you to create very good user experiences. You can check their reddit pages to see the beautiful designs people recreate.\nI highly recommend using cross platform tools vs native if your app has generic functionality that doesn't use advanced functionality of the app like VR/AR. So, for something like a dating app without those features, you would probably be better off with cross platform native instead of single platform native (swift/kotlin).\nIf budget is low, a lot of companies have success just using Expo (a framework on top of React Native). It limits you further, but it's the easiest and most affordable to find developers with. Eventually you might decide to move away from it, but at that time ou ll have a lot more money and react native will be an easy tech to move towards.\n\n
Xamarin is the oldest of the cross platform native tools and so there's a lot more documentation and supporting libraries. \n\n
Flutter is super fast & fluid, and since it uses pixels(skia), it's even more performant than all the other technologies including native single platform. But it doesn't come with the amazing libraries that Xamarin and React Native is able to leverage","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2022-02-15T17:06:42Z","decisionType":"giveAdvice","rootComments":[{"id":"107836072481687597","user":{"id":"107733103969351243","path":"/aarav","imageUrl":"https://img.stackshare.io/user/1125832/default_a5fe6cd9a137cc48c11f401c1833e385d67c6479.jpeg","__typename":"User","displayName":"Aarav Varma"},"content":"Thank you so much, I shall look into it and dig in more to get more information about the same.\n\nNamaste ","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2022-02-21T12:51:23Z","__typename":"Comment","upvotesCount":0}],"subjectTools":[{"id":"101231776330013459","fans":961,"name":"Expo","path":"/expo","slug":"expo","title":"Build one project that runs natively on all your users' devices","votes":66,"stacks":720,"imageUrl":"https://img.stackshare.io/service/5795/default_683a3de22a6983c41f27b04348f4c7380c5e3c21.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/expo","followContext":null},{"id":"101231777036008618","fans":18190,"name":"Flutter","path":"/flutter","slug":"flutter","title":"Cross-platform mobile framework from Google","votes":1175,"stacks":16867,"imageUrl":"https://img.stackshare.io/service/7180/flutter-mark-square-100.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/flutter","followContext":null},{"id":"101231774544144572","fans":34384,"name":"React Native","path":"/react-native","slug":"react-native","title":"A framework for building native apps with React","votes":1156,"stacks":33566,"imageUrl":"https://img.stackshare.io/service/2699/KoK6gHzp.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/react-native","followContext":null},{"id":"101231773512118320","fans":1873,"name":"Xamarin","path":"/xamarin","slug":"xamarin","title":"Create iOS, Android and Mac apps in C#","votes":785,"stacks":1307,"imageUrl":"https://img.stackshare.io/service/211/RDXWoY7W.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/xamarin","followContext":null},{"id":"101231774436802643","fans":358,"name":"Xamarin Forms","path":"/xamarin-forms","slug":"xamarin-forms","title":" A complete cross-platform UI toolkit for .NET developers","votes":5,"stacks":346,"imageUrl":"https://img.stackshare.io/service/2459/RDXWoY7W_400x400.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/xamarin-forms","followContext":null}],"upvotesCount":7,"commentsCount":1},"__typename":"StackDecisionEdge"},{"node":{"id":"107805794069956841","link":null,"user":{"id":"107805723957840215","path":"/audaine","title":null,"imageUrl":"https://img.stackshare.io/user/1135387/default_f9ecb4bf1702f03c34b5ffc3d66f7b04060ee878.png","username":"audaine","__typename":"User","companyName":null,"displayName":"audaine"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"107805794069956841","services":[],"createdAt":"2022-02-16T04:31:11Z","fromTools":[],"viewCount":29627,"__typename":"StackDecision","bookmarked":false,"rawContent":"As the previous commentor said, Next.js or React Native + Expo may be a better option. There's also the options of AssemblyScript + React/Next.js, or NativeScript and Ionic, both of which give you mature ecosystems of tools and close-to-native experiences. Flutter, you're likely to have the same experiences you had with Swift and Kotlin. Flutter requires higher separation of concerns between platforms, doesn't have nearly the third-party support of any of the other options, and is fairly large in binary size. Still, it's a growing system and in the future it may actually outcompete the other options when it has a large enough ecosystem.","htmlContent":"
As the previous commentor said, Next.js or React Native + Expo may be a better option. There's also the options of AssemblyScript + React/Next.js, or NativeScript and Ionic, both of which give you mature ecosystems of tools and close-to-native experiences. Flutter, you're likely to have the same experiences you had with Swift and Kotlin. Flutter requires higher separation of concerns between platforms, doesn't have nearly the third-party support of any of the other options, and is fairly large in binary size. Still, it's a growing system and in the future it may actually outcompete the other options when it has a large enough ecosystem.","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2022-02-16T04:31:11Z","decisionType":"giveAdvice","rootComments":[{"id":"107922259341719880","user":{"id":"107733103969351243","path":"/aarav","imageUrl":"https://img.stackshare.io/user/1125832/default_a5fe6cd9a137cc48c11f401c1833e385d67c6479.jpeg","__typename":"User","displayName":"Aarav Varma"},"content":"Thank you so much, I shall look into it and dig in more to get more information about the same.\n\nNamaste","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2022-03-08T18:09:50Z","__typename":"Comment","upvotesCount":0}],"subjectTools":[{"id":"103197140975189604","fans":5,"name":"AssemblyScript","path":"/assemblyscript","slug":"assemblyscript","title":"A TypeScript-like language for WebAssembly","votes":0,"stacks":4,"imageUrl":"https://img.stackshare.io/service/11527/default_76dd255e7c84aeb782b9cefd82d83e9f71b4429c.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/assemblyscript","followContext":null},{"id":"101231776330013459","fans":961,"name":"Expo","path":"/expo","slug":"expo","title":"Build one project that runs natively on all your users' devices","votes":66,"stacks":720,"imageUrl":"https://img.stackshare.io/service/5795/default_683a3de22a6983c41f27b04348f4c7380c5e3c21.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/expo","followContext":null},{"id":"101231773788504314","fans":10455,"name":"Ionic","path":"/ionic","slug":"ionic","title":"A beautiful front-end framework for developing cross-platform apps with web technologies like Angular and React.","votes":1755,"stacks":9459,"imageUrl":"https://img.stackshare.io/service/876/bYMCvtHD_400x400.jpg","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/ionic","followContext":null},{"id":"101231774501097376","fans":1247,"name":"NativeScript","path":"/nativescript","slug":"nativescript","title":"Build truly native apps with JavaScript","votes":516,"stacks":539,"imageUrl":"https://img.stackshare.io/service/2605/_fBe-iYT.jpeg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/nativescript","followContext":null},{"id":"101231776411419473","fans":6520,"name":"Next.js","path":"/next-js","slug":"next-js","title":"A small framework for server-rendered universal JavaScript apps ","votes":326,"stacks":6764,"imageUrl":"https://img.stackshare.io/service/5936/nextjs.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/next-js","followContext":null},{"id":"101231774544144572","fans":34384,"name":"React Native","path":"/react-native","slug":"react-native","title":"A framework for building native apps with React","votes":1156,"stacks":33566,"imageUrl":"https://img.stackshare.io/service/2699/KoK6gHzp.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/react-native","followContext":null}],"upvotesCount":3,"commentsCount":1},"__typename":"StackDecisionEdge"},{"node":{"id":"108017146469302638","link":null,"user":{"id":"108016711933438975","path":"/adventures92","title":"Associate Director Engineering","imageUrl":"https://img.stackshare.io/user/1160556/default_c896862e080de5ff05145c19f81701705755af9c.jpg","username":"adventures92","__typename":"User","companyName":"Sunstone Eduversity","displayName":"Anand Verma"},"draft":false,"topics":[],"company":{"id":"108012421956763868","name":"Sunstone Eduversity","path":"/companies/sunstone-eduversity","slug":"sunstone-eduversity","imageUrl":"https://img.stackshare.io/company/173009/default_05eded56598850f7cf04974a87500a08ba90dcab.png","__typename":"Company"},"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"108017146469302638","services":[],"createdAt":"2022-03-25T12:20:53Z","fromTools":[],"viewCount":13819,"__typename":"StackDecision","bookmarked":false,"rawContent":"Framework like **Flutter** or **React Native** can never replace native technologies, Both platform launches their features onto their official framework and **Flutter** or **React Native** adopt these new feature via their community support that so you might need to wait or you can write on your own. Also performance is a great factor if your are more focused on performance then it's always advised to go with native on.\nOne of the emerging technology is **Kotlin Multiplatform** you can try this one if you are building app for both platform. KMM can help you to put all you business logic at single place and can construct UI on the native language.\n\nStill if you wanna move toward the **Flutter** or **React Native** my advice is to go with **Flutter** cause of it's increasing community support & industry choice.\n","htmlContent":"
Framework like Flutter or React Native can never replace native technologies, Both platform launches their features onto their official framework and Flutter or React Native adopt these new feature via their community support that so you might need to wait or you can write on your own. Also performance is a great factor if your are more focused on performance then it's always advised to go with native on.\nOne of the emerging technology is Kotlin Multiplatform you can try this one if you are building app for both platform. KMM can help you to put all you business logic at single place and can construct UI on the native language.\n\n
Still if you wanna move toward the Flutter or React Native my advice is to go with Flutter cause of it's increasing community support & industry choice.","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2022-03-25T12:20:52Z","decisionType":"giveAdvice","rootComments":[{"id":"108017485687690338","user":{"id":"107733103969351243","path":"/aarav","imageUrl":"https://img.stackshare.io/user/1125832/default_a5fe6cd9a137cc48c11f401c1833e385d67c6479.jpeg","__typename":"User","displayName":"Aarav Varma"},"content":"Thats great info Anand, thank you \n\nNamaste","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2022-03-25T13:47:09Z","__typename":"Comment","upvotesCount":0}],"subjectTools":[],"upvotesCount":2,"commentsCount":1},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"Mw","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"107790990384881973","services":[{"name":"React Native","imageUrl":"https://img.stackshare.io/service/2699/KoK6gHzp.jpg","thumbUrl":"https://img.stackshare.io/service/2699/thumb_KoK6gHzp.jpg","__typename":"Tool"},{"name":"Swift","imageUrl":"https://img.stackshare.io/service/1009/tuHsaI2U.png","thumbUrl":"https://img.stackshare.io/service/1009/thumb_tuHsaI2U.png","__typename":"Tool"},{"name":"Kotlin","imageUrl":"https://img.stackshare.io/service/3750/pCfEzr6L.png","thumbUrl":"https://img.stackshare.io/service/3750/thumb_pCfEzr6L.png","__typename":"Tool"},{"name":"Flutter","imageUrl":"https://img.stackshare.io/service/7180/flutter-mark-square-100.png","thumbUrl":"https://img.stackshare.io/service/7180/thumb_flutter-mark-square-100.png","__typename":"Tool"},{"name":"React","imageUrl":"https://img.stackshare.io/service/1020/OYIaJ1KK.png","thumbUrl":"https://img.stackshare.io/service/1020/thumb_OYIaJ1KK.png","__typename":"Tool"}],"fromTools":[],"viewCount":30231,"__typename":"StackDecision","htmlContent":"
If your team has a strong background in Python and you want to release some prototype soon, you could try Python and Kivy. Kivy is an open-source, cross-platform Python framework for rapid development of mobile GUIs. It supports both iOS and Android.\nI have passed a similar situation recently: to start a mobile app with no background in mobile development. Kivy saved me a lot of time. I could develop a prototype and release it faster than I thoght.","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2021-09-02T21:05:57Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231775952660107","fans":346,"name":"Kivy","path":"/kivy","slug":"kivy","title":"An open source Python framework ","votes":20,"stacks":91,"imageUrl":"https://img.stackshare.io/service/5131/6WcGRXLU_400x400.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kivy","followContext":null}],"upvotesCount":6,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"106833682129354699","link":null,"user":{"id":"102050507969785715","path":"/Fredd","title":"Engineering","imageUrl":"https://img.stackshare.io/user/294125/default_c72c263cf02ea722a1122d0d819ab55e4889e5bf.jpeg","username":"Fredd","__typename":"User","companyName":"Xtartup","displayName":"Frederico Bezerra"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"106833682129354699","services":[],"createdAt":"2021-08-28T12:10:20Z","fromTools":[],"viewCount":65195,"__typename":"StackDecision","bookmarked":false,"rawContent":"To be honest , You need to think these points :\n\n- Developer Experience\n\n- Tooling\n\n- Maintainability\n\nMy vote for now is going with React Native with Expo , using Typescript...\n\nWith this stack You could follow some patterns and principle that the Java and python programmers are familiar with.\n\nTypescript is a javascript Superset that you can follow Procedural , Functional and OOP approaches and an easy learning curve.\n\nWith Expo you need to concern only with the shared layer (Typescript) and the Native ones will be expo responsibility.\n\nPlease check Expo.com and try to get started using typescript.\n\nGood performance and with EAS (paid plan) you can create a full CI CD pipeline for your app connected to the stores(Apple and Android).\n\n\n","htmlContent":"
To be honest , You need to think these points :\n\n
\n
Developer Experience\n
Tooling\n
Maintainability\n\n\n
My vote for now is going with React Native with Expo , using Typescript...\n\n
With this stack You could follow some patterns and principle that the Java and python programmers are familiar with.\n\n
Typescript is a javascript Superset that you can follow Procedural , Functional and OOP approaches and an easy learning curve.\n\n
With Expo you need to concern only with the shared layer (Typescript) and the Native ones will be expo responsibility.\n\n
Please check Expo.com and try to get started using typescript.\n\n
Good performance and with EAS (paid plan) you can create a full CI CD pipeline for your app connected to the stores(Apple and Android).","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2021-08-28T12:10:19Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231776330013459","fans":961,"name":"Expo","path":"/expo","slug":"expo","title":"Build one project that runs natively on all your users' devices","votes":66,"stacks":720,"imageUrl":"https://img.stackshare.io/service/5795/default_683a3de22a6983c41f27b04348f4c7380c5e3c21.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/expo","followContext":null},{"id":"101231774544144572","fans":34384,"name":"React Native","path":"/react-native","slug":"react-native","title":"A framework for building native apps with React","votes":1156,"stacks":33566,"imageUrl":"https://img.stackshare.io/service/2699/KoK6gHzp.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/react-native","followContext":null}],"upvotesCount":5,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"107027812223424438","link":null,"user":{"id":"101231989927002693","path":"/mlynch","title":"","imageUrl":"https://img.stackshare.io/user/1473/default_5e8cec69d039d6749d7c692e601515f9c305dada.jpeg","username":"mlynch","__typename":"User","companyName":"Ionic","displayName":"Max Lynch"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"107027812223424438","services":[{"id":"101231773788504314","fans":10455,"name":"Ionic","path":"/ionic","slug":"ionic","title":"A beautiful front-end framework for developing cross-platform apps with web technologies like Angular and React.","votes":1755,"stacks":9459,"imageUrl":"https://img.stackshare.io/service/876/bYMCvtHD_400x400.jpg","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/ionic","followContext":null},{"id":"102294672605916339","fans":408,"name":"Capacitor","path":"/capacitor","slug":"capacitor","title":"The Native Bridge for Cross-Platform Web Apps","votes":2,"stacks":255,"imageUrl":"https://img.stackshare.io/service/11122/h0Zkhp-g_400x400.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/capacitor","followContext":null}],"createdAt":"2021-10-01T19:00:10Z","fromTools":[],"viewCount":37525,"__typename":"StackDecision","bookmarked":false,"rawContent":"If you already know how to build web apps, give @{Capacitor}|tool:11122| a try. You can think of it like \"electron for mobile\" in that you can build a web app but access native functionality. Pair it with @{Ionic}|tool:876| if you want a UI kit that is optimized for mobile, or build your own UI from scratch.\n\nA bonus to @{Capacitor}|tool:11122| is your app will run without modification on the web as a PWA, iOS, Android, and more.","htmlContent":"
If you already know how to build web apps, give Capacitor a try. You can think of it like \"electron for mobile\" in that you can build a web app but access native functionality. Pair it with Ionic if you want a UI kit that is optimized for mobile, or build your own UI from scratch.\n\n
A bonus to Capacitor is your app will run without modification on the web as a PWA, iOS, Android, and more.","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2021-10-01T19:00:10Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"102294672605916339","fans":408,"name":"Capacitor","path":"/capacitor","slug":"capacitor","title":"The Native Bridge for Cross-Platform Web Apps","votes":2,"stacks":255,"imageUrl":"https://img.stackshare.io/service/11122/h0Zkhp-g_400x400.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/capacitor","followContext":null},{"id":"101231773788504314","fans":10455,"name":"Ionic","path":"/ionic","slug":"ionic","title":"A beautiful front-end framework for developing cross-platform apps with web technologies like Angular and React.","votes":1755,"stacks":9459,"imageUrl":"https://img.stackshare.io/service/876/bYMCvtHD_400x400.jpg","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/ionic","followContext":null}],"upvotesCount":3,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"106822717200222624","link":null,"user":{"id":"102660645370130083","path":"/woodcockjosh","title":null,"imageUrl":"https://img.stackshare.io/user/305335/default_1820f8dffb33528ef78cf33dbf825a804d475242.png","username":"woodcockjosh","__typename":"User","companyName":null,"displayName":"woodcockjosh"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"106822717200222624","services":[],"createdAt":"2021-08-26T13:41:48Z","fromTools":[],"viewCount":32959,"__typename":"StackDecision","bookmarked":false,"rawContent":"Other tools have very slow performance. They are usually selected because someone on the team likes Angular, but your customers won't care what framework you're using. They'll just know the app is slow. ","htmlContent":"
Other tools have very slow performance. They are usually selected because someone on the team likes Angular, but your customers won't care what framework you're using. They'll just know the app is slow. ","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2021-08-26T13:41:48Z","decisionType":"giveAdvice","rootComments":[{"id":"107027824154104320","user":{"id":"101231989927002693","path":"/mlynch","imageUrl":"https://img.stackshare.io/user/1473/default_5e8cec69d039d6749d7c692e601515f9c305dada.jpeg","__typename":"User","displayName":"Max Lynch"},"content":"That's not true at all (performance) and is a pretty broad statement to make. If that were the case there wouldn't be so many popular apps with happy users on other technologies like Ionic/Capacitor.","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2021-10-01T19:03:12Z","__typename":"Comment","upvotesCount":0}],"subjectTools":[{"id":"101231774544144572","fans":34384,"name":"React Native","path":"/react-native","slug":"react-native","title":"A framework for building native apps with React","votes":1156,"stacks":33566,"imageUrl":"https://img.stackshare.io/service/2699/KoK6gHzp.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/react-native","followContext":null}],"upvotesCount":2,"commentsCount":1},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"NA","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"106786506672416911","services":[{"name":"Appium","imageUrl":"https://img.stackshare.io/service/2855/0KVJyYNC_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/2855/thumb_0KVJyYNC_400x400.jpg","__typename":"Tool"},{"name":"Selenium","imageUrl":"https://img.stackshare.io/service/1517/sbUizSli_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/1517/thumb_sbUizSli_400x400.jpg","__typename":"Tool"},{"name":"AngularJS","imageUrl":"https://img.stackshare.io/service/1019/square.png","thumbUrl":"https://img.stackshare.io/service/1019/thumb_square.png","__typename":"Tool"},{"name":"Python","imageUrl":"https://img.stackshare.io/service/993/pUBY5pVj.png","thumbUrl":"https://img.stackshare.io/service/993/thumb_pUBY5pVj.png","__typename":"Tool"},{"name":"Java","imageUrl":"https://img.stackshare.io/service/995/K85ZWV2F.png","thumbUrl":"https://img.stackshare.io/service/995/thumb_K85ZWV2F.png","__typename":"Tool"}],"fromTools":[],"viewCount":557188,"__typename":"StackDecision","htmlContent":"
Looking for some advice: we are planning to create a hybrid app for both iOS and Android; this app will consume a REST API. We are looking for a tool for this development with the following attributes:\n\n
\n
Shallow learning curve; easiness to adopt (all team is new into mobile development, with diverse backgrounds: Java, Python & AngularJS),\n
Easiness to test (we discarded Angular-based tools already: creating a unit test in Angular we considered time-consuming and low value. At this point of the project, we cannot afford UI testing with Selenium/Appium based tools).\n
So far, we are not considering any specific capability of the device. Still, in the mid/long term, we would require the usage of GPS (geolocalization) and accelerometer (not sure if it's possible to use it from a hybrid app).\nSuggest any other tool if you wish.\n","publishedAt":"2021-08-20T04:12:59Z","decisionType":"getAdvice","subjectTools":[{"id":"101231773788504314","fans":10455,"name":"Ionic","path":"/ionic","slug":"ionic","title":"A beautiful front-end framework for developing cross-platform apps with web technologies like Angular and React.","votes":1755,"stacks":9459,"imageUrl":"https://img.stackshare.io/service/876/bYMCvtHD_400x400.jpg","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/ionic","followContext":null},{"id":"101231773748106666","fans":807,"name":"PhoneGap","path":"/phonegap","slug":"phonegap","title":"Easilily create mobile apps using HTML, CSS, and JavaScript","votes":94,"stacks":584,"imageUrl":"https://img.stackshare.io/service/777/NgaEDjHt.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/phonegap","followContext":null},{"id":"101231774544144572","fans":34384,"name":"React Native","path":"/react-native","slug":"react-native","title":"A framework for building native apps with React","votes":1156,"stacks":33566,"imageUrl":"https://img.stackshare.io/service/2699/KoK6gHzp.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/react-native","followContext":null}],"upvotesCount":7},"__typename":"StackDecisionEdge"},{"node":{"id":"106501596248635749","user":{"id":"106501536411337343","title":"","imageUrl":"https://img.stackshare.io/user/985162/default_fd599a1d8d9984f3f2e7fc56fd93bf423794a1fb.jpeg","thumbUrl":"https://img.stackshare.io/user/985162/thumb_fd599a1d8d9984f3f2e7fc56fd93bf423794a1fb.jpeg","username":"tokoshima","__typename":"User","companyName":"Inqubeko","displayName":"Louw Pretorius"},"stack":null,"topics":[],"answers":{"count":4,"edges":[{"node":{"id":"106533404793944712","link":null,"user":{"id":"106533338060153387","path":"/lajeetadhikary123","title":"","imageUrl":"https://img.stackshare.io/user/986801/default_6a9b33bbfbf000c89b00fa2be4895aec95bcd29b.png","username":"lajeetadhikary123","__typename":"User","companyName":"","displayName":"Lajeet Adhikary"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"106533404793944712","services":[],"createdAt":"2021-07-06T11:25:51Z","fromTools":[],"viewCount":66457,"__typename":"StackDecision","bookmarked":false,"rawContent":"I think you should go with Flutter any day because there is a large variety of widgets inventory for it which can fasten up the development time to at least roll out a minimal viable product out there. Performance of Flutter Apps are also better than React Native apps. And as an added bonus, if in future you want to add a web interface for the same, you can do it using the existing codebase if written in Flutter (dart).","htmlContent":"
I think you should go with Flutter any day because there is a large variety of widgets inventory for it which can fasten up the development time to at least roll out a minimal viable product out there. Performance of Flutter Apps are also better than React Native apps. And as an added bonus, if in future you want to add a web interface for the same, you can do it using the existing codebase if written in Flutter (dart).","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2021-07-06T11:25:51Z","decisionType":"giveAdvice","rootComments":[{"id":"106535642357033823","user":{"id":"103777416403963718","path":"/ricardoboss","imageUrl":"https://img.stackshare.io/user/426429/default_c07d3c76b8e20938516e60ab827f40dbdfea8324.jpeg","__typename":"User","displayName":"Ricardo Boss"},"content":"I completely agree with this. Just wanted to add that Dart (the language used by flutter) and the design paradigm (fully functional) can be hard at first. Once you tinker with it you can almost create any prototype in no time.","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2021-07-06T20:54:54Z","__typename":"Comment","upvotesCount":2}],"subjectTools":[{"id":"101231774033451843","fans":24158,"name":"Android Studio","path":"/android-studio","slug":"android-studio","title":"Android development environment based on IntelliJ IDEA","votes":361,"stacks":25229,"imageUrl":"https://img.stackshare.io/service/1447/AyreX9yf.jpeg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/android-studio","followContext":null},{"id":"101231777036008618","fans":18190,"name":"Flutter","path":"/flutter","slug":"flutter","title":"Cross-platform mobile framework from Google","votes":1175,"stacks":16867,"imageUrl":"https://img.stackshare.io/service/7180/flutter-mark-square-100.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/flutter","followContext":null},{"id":"101231775423888689","fans":183996,"name":"Visual Studio Code","path":"/visual-studio-code","slug":"visual-studio-code","title":"Build and debug modern web and cloud applications, by Microsoft","votes":2280,"stacks":179371,"imageUrl":"https://img.stackshare.io/service/4202/Visual_Studio_Code_logo.png","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/visual-studio-code","followContext":null}],"upvotesCount":18,"commentsCount":1},"__typename":"StackDecisionEdge"},{"node":{"id":"106552003559279870","link":null,"user":{"id":"105978812972288477","path":"/troglodytto","title":"Software Engineer","imageUrl":"https://img.stackshare.io/user/928165/default_fd9a78fa935cbe1e4d1d84d98cb475b8d7e3d1db.jpeg","username":"troglodytto","__typename":"User","companyName":"Rivi","displayName":"Ephemeral Astronaut"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"106552003559279870","services":[],"createdAt":"2021-07-09T18:15:46Z","fromTools":[],"viewCount":65437,"__typename":"StackDecision","bookmarked":false,"rawContent":"IMO if you need to build a simple and quick UI for your app, I'd suggest you go for either React Native or Android with Java or Better Yet, Kotlin (It won't take much time for you to get familiar with it if you know Java. See this https://play.kotlinlang.org/koans/overview). For Backend APIs you can use Python with something like Flask","htmlContent":"
Hi, I'm considering building a social marketplace app on android, ios and web, Flutter seems to be a good UI framework for cross-platform apps, it's safe type, hot reload, and native compiling on native machine code (thanks to Dart).
My question is, for an MVP product is it a good choice? if yes, will it be on the mid-term, long term? Or will I have to change as the users grow?
I agree with John. For the most part, Flutter has been easier to maintain as time goes on when comparing to react native. And in the landscape, the people at Flutter appears to be very active with the framework, a lot of things cooking. Flutter web is very new, but it'll only get better, more stable.
For the most part, Dart/Flutter is a great choice for cross-platform application development. The platform is developed by Google, and will be around for a long time. Unless you need to do very low level stuff, like bluetooth tethering or 3D drawing, flutter should be able to handle anything you need it to.
We also had the same discussion, but ended with Flutter cause of it's great community support & great set of packages.
Also achieving calling native feature is super smooth. And Flutter support Web as well while React Native don't.
Learning curve is also a great point to choose flutter all doc's official videos are super rich to help you out.
Can React or Flutter replace native technologies?
I'm a founder of a Social Network called Orbiting, I'm basically a nontech guy, everything about tech is self-taught so I'm confused about what should I do taking forward the product, I've stupidly built Native mobile apps for Android (Kotlin) and Ios (Swift), post-beta, I'm thinking to move towards a language like React Native or Flutter as it decreases strain on my frontend side, keeping the team lean is one of my most important aspects in terms of growing the company but at the same time I don't want to compromise on user experience.
We have experience with React Native, Flutter or Xamarin, the lion share of the native cross-platform tools used. They all allow you to create very good user experiences. You can check their reddit pages to see the beautiful designs people recreate.
I highly recommend using cross platform tools vs native if your app has generic functionality that doesn't use advanced functionality of the app like VR/AR. So, for something like a dating app without those features, you would probably be better off with cross platform native instead of single platform native (swift/kotlin).
If budget is low, a lot of companies have success just using Expo (a framework on top of React Native). It limits you further, but it's the easiest and most affordable to find developers with. Eventually you might decide to move away from it, but at that time ou ll have a lot more money and react native will be an easy tech to move towards.
Xamarin is the oldest of the cross platform native tools and so there's a lot more documentation and supporting libraries.
Flutter is super fast & fluid, and since it uses pixels(skia), it's even more performant than all the other technologies including native single platform. But it doesn't come with the amazing libraries that Xamarin and React Native is able to leverage
As the previous commentor said, Next.js or React Native + Expo may be a better option. There's also the options of AssemblyScript + React/Next.js, or NativeScript and Ionic, both of which give you mature ecosystems of tools and close-to-native experiences. Flutter, you're likely to have the same experiences you had with Swift and Kotlin. Flutter requires higher separation of concerns between platforms, doesn't have nearly the third-party support of any of the other options, and is fairly large in binary size. Still, it's a growing system and in the future it may actually outcompete the other options when it has a large enough ecosystem.
Framework like Flutter or React Native can never replace native technologies, Both platform launches their features onto their official framework and Flutter or React Native adopt these new feature via their community support that so you might need to wait or you can write on your own. Also performance is a great factor if your are more focused on performance then it's always advised to go with native on.
One of the emerging technology is Kotlin Multiplatform you can try this one if you are building app for both platform. KMM can help you to put all you business logic at single place and can construct UI on the native language.
Still if you wanna move toward the Flutter or React Native my advice is to go with Flutter cause of it's increasing community support & industry choice.
Looking for some advice: we are planning to create a hybrid app for both iOS and Android; this app will consume a REST API. We are looking for a tool for this development with the following attributes:
Shallow learning curve; easiness to adopt (all team is new into mobile development, with diverse backgrounds: Java, Python & AngularJS),
Easiness to test (we discarded Angular-based tools already: creating a unit test in Angular we considered time-consuming and low value. At this point of the project, we cannot afford UI testing with Selenium/Appium based tools).
So far, we are not considering any specific capability of the device. Still, in the mid/long term, we would require the usage of GPS (geolocalization) and accelerometer (not sure if it's possible to use it from a hybrid app).
Suggest any other tool if you wish.
If your team has a strong background in Python and you want to release some prototype soon, you could try Python and Kivy. Kivy is an open-source, cross-platform Python framework for rapid development of mobile GUIs. It supports both iOS and Android.
I have passed a similar situation recently: to start a mobile app with no background in mobile development. Kivy saved me a lot of time. I could develop a prototype and release it faster than I thoght.
If you already know how to build web apps, give Capacitor a try. You can think of it like "electron for mobile" in that you can build a web app but access native functionality. Pair it with Ionic if you want a UI kit that is optimized for mobile, or build your own UI from scratch.
A bonus to Capacitor is your app will run without modification on the web as a PWA, iOS, Android, and more.
Other tools have very slow performance. They are usually selected because someone on the team likes Angular, but your customers won't care what framework you're using. They'll just know the app is slow.
Hi, Stackshare community. A few friends and I are enrolled in an "appathon". We are given +- a month to develop an app. We chose the agricultural sector. We want to develop an app that can keep track of livestock vaccinations. So we would have to utilize quite a big database. We only have a month to develop a Minimal Viable Product. What stack is preferred? Our JavaScript skills aren't the best. We do know Java and Python quite well, however. What stack would benefit us?
I think you should go with Flutter any day because there is a large variety of widgets inventory for it which can fasten up the development time to at least roll out a minimal viable product out there. Performance of Flutter Apps are also better than React Native apps. And as an added bonus, if in future you want to add a web interface for the same, you can do it using the existing codebase if written in Flutter (dart).
IMO if you need to build a simple and quick UI for your app, I'd suggest you go for either React Native or Android with Java or Better Yet, Kotlin (It won't take much time for you to get familiar with it if you know Java. See this https://play.kotlinlang.org/koans/overview). For Backend APIs you can use Python with something like Flask
If a web app would work, you can use your Python skills to build it quickly with Anvil. They handle hosting and deployment, with built-in database and user authentication. There's a drag-and-drop UI designer. But we're not talking a "no code" solution here. You write all the logic (both server- and client-side) in Python.
It depends. If you only need it to run on Android, you might be able to develop it faster in Android Studio (Java/Kotlin) with your experience with Java. Kotlin syntax is different than Java, but Android Studio has conversion from Java to Kotlin built-in.
If you need apps for both iOS and Android, or you are willing to be pushed out of your comfort zone and build experience, definitely go with Flutter/Dart. I was able to translate my iOS and Android native skills to Flutter/Dart very quickly. Performance is as good or better than native, and much better than React Native. Development is actually faster than a single platform native app, as well.
I have been searching lately for frameworks to build mobile apps.
We are trying to make something like a quiz app as a way for customers to contact us. I considered Ionic and React Native because we use JavaScript most of the time in websites, e.g., Vue.js/Nuxt.js. But Flutter seems a decent choice as well, especially since you can use Android/iOS-like components.
We are looking for something that works in the long term, something that's time and cost-effective, especially when paired with backend services like Firebase or a GraphQL server.
I would like to know your opinions and recommendations. Thank you!
I think in the long term Flutter would be your best bet, I work with both flutter and react native daily and I am constantly finding reasons why flutter is better then RN, some general things I've found with flutter are the following:
User base is growing massively and a lot of companies are switching over to flutter
Performance is much better than React, both usage and compile times.
Managing framework updates with Flutter is a breeze and not so great with React.
I have been exploring the Flutter lately it's good but if I am building something which is really huge then I will definitely use React Native for these reasons
React Native is used by so many big companies so there are libraries for everything you need.
As of now React Native community is bigger and more active than Flutter so if you're stuck anywhere it will be easy to get help or just find a solution from stack overflow.
Since you're already working on JS you wouldn't need to learn anything new and you can focus on building your product.
The question you should be asking yourself Do I want to spend my time learning a new framework and then build the product or should I just building the product with the framework I know.
Capacitor is a perfect tool for creating hybrid apps with any of the leading JS framework, so you don't have to worry about switching from JS to anything else. It also has a great ecosystem, as well as the native functions bridge plugins, most of them require zero-to-minimum effort to set them up.
Unlike in React Native/Vue Native, you are not limited to specific components or logic, you are also free to choose any fitting UI kit, and the final product looks and behaves exactly the same regardless of the platform.
I would definitely go with Flutter. I have been writing native apps in iOS (Objective-C/Swift) and Android (Java/Kotlin) for over 6 years. For public-facing apps, we have generally written and maintained 3 code bases (iOS, Android, Web), so we have tried cross-platform solutions, including Ionic and React Native. React Native was definitely better than Ionic, but still lagged significantly behind native, in terms of performance. Flutter is a game-changer. I have been tasked with writing a public-facing app to help users identify fish species. It is backed with AWS Amplify (AppSync/GraphQL). I was able to write a platform-aware UI, with native-looking elements in less time than it would have taken me to write it natively for a single platform. It looks like with just a few UI and backend tweaks, we will also be able to deploy it for Web. I haven't run tests to confirm, but performance appears to be at least as good as native. Here are some additional benefits when using Flutter/Dart with VSCode:
I'll second the recommendation to check out Capacitor, optionally with Ionic. Capacitor provides a sort of "electron for mobile" that runs web apps on iOS, Android, Desktop, and as a PWA on the web, giving you access to the full native functionality on each platform through plugins or custom native code. Ionic then provides a native-quality UI layer and opinionated developer experience that ultimately uses Capacitor under the hood.
Sounds like your team already has a lot of web experience and existing web code, so Capacitor on its own or with Ionic would be a great choice since it's a standard web environment and can run any JavaScript app.
We are developing an AWS IoT app for large boats. The IoT devices have sensors all over the boat for engine oil pressure, position, water depth, fuel level, crew location, etc. When the boat has internet, we interact with AWS cloud using lambda and Amazon DynamoDB. When the boat is offshore, the captain and crew still need normal and emergency alerts and real-time sensor information. The crew might have an Android or IoS phone or a Windows or macOS PC to receive alerts and interact with sensors. We may use the AWS GreenGrasss edge computing solution and either MQTT or HTML for that function.
Question: We want to develop a cross-platform client to run on Windows, Mac, Android, IOS, and possibly Linux. We are primarily Python programmers, so PyQt or Kivy are options for us, but we have heard good things about React Native, Flutter, Xamarin, and others. We think an AWS Greengrass core on an RPI4 could communicate to the client with MQTT or a local webserver with a client web interface.
I don't know much about Xamarin but I know about PyQt and React Native.
However, I don't recommend PyQt because the apps made using PyQt are not that suitable for mobile apps. If you take a look at the PyQt interface, you will be able to see that the features are more of a desktop apps kind.
React Native uses JavaScript. React Native is immensely flexible in upgrading your apps because it allows you to formulate your app code into independent blocks.
In Xamarin, you have to write the code in .NET . The best thing about Xamarin is, that it extends the.NET developer platform with tools and libraries specifically for building apps for Android, iOS, tvOS, watchOS, macOS, and Windows
While the best choice for you depends on various factors but React Native app development is a promising overall choice. In todayâs scenario, React Native has steady growth, flawless code structure, and brilliant and large community support. We suggest you go for React Native for your next project owing to its outstanding support from developers, easy availability, and cost-effectiveness.
It seems like your app is not really using any native functionality on the phone. I have experience with cross platform iOS & Android development. They are all really good tools! Xamarin (all the project on the website portfolio I attached) is awesome for accessing native functionality (NFC, Sensors, Bluetooth, etc), and I have built apps that have millions of downloads, some that hit Top 5 on Utilities, another that hit Top 50 in Finances.
You just have to look at what your application intent is, it seems like it's just to read and post data. For that they are all pretty good, but you should also look into Ionic which may serve the same purpose
I am building an app that would need at least two external APIs: a map and a payment service. I am currently building in Flutter, but I am having trouble integrating one of the external APIs with the app. I wonder (because I am still at the beginning) if I should switch to React Native or build native iOS and Android apps separately. Any advice would be appreciated!
Choosing between ios/android and Flutter is not simple. Neither is a one-size-fit-all solution. It would be impossible to suggest one or the other without first analysing particular projectâs requirements.
Choosing cross-platform development (Flutter) offers a number of advantages â lower cost, faster time to market, etcâ¦, and if applied to the right type of project, will result in high-quality, marketable mobile product. In my opinion, stick with flutter and try to resolve those problems. Here are some useful links,
It's a bit late but I suggest staying on Flutter anyway. Though you might face troubles with APIs integration, overall development experience is better on Flutter, so you save some time & power on the project in general. Dunno if it's of any use to you, but as a prove I attach one of many Flutter vs RN comparison articles (you can find any other similar yourself on the web though), hope it helps you make a decision
Hi Friends, I am new to #MobileAppDevelopment and I need to make a #CrossPlatformMobileApp. I want guidance regarding which tools should I use to build a mobile app. Main requirements: integrate Unity game engine and provide a platform for social chats.
Past experience - C++ and Python
I have tagged Flutter and React Native but if anything better than both please suggest them.
Hey, If you are using Unity you are going to have to do the end to end development on Unity, you can directly build for android and iOS on Unity. I dont see how Flutter or React Native fit into this equation. Unity is a standalone engine. As for Social Chats, you could use Firebase or your own API and integrate that in Unity in C#
I agree with Sahil. If Unity is a requirement, best way is to use just that to create your app.
If you really want, it should be possible to use Flutter and Unity together. Using Flutter Unity Widget. Although I wouldn't recommend it just yet. It's too early days.
If you do end up using it, I would be very interested in reading about your experiences.
You can start by small steps with Flutter and after Unity.
Flutter = best choice to build a small cross-platform mobile app.
With or no flutter, use directly Unity. Y'll have complete control but it's harder for new mobile developers.
Keep in mind, the requirement is Unity!
Hello guys, I am new here. So, if I posted without specific guidelines, please ignore.
Basically, I am an iOS developer and developing native apps for the last three years. Recently, I started learning React Native to develop apps for both platforms. If anyone out there knows any useful resources that will become a better react native developer.
Well, the first resource I would recommend you is my upcoming book by Packt Publishing, "Professional React Native", but it's due late January next year :) . Now jokes aside (the book's real by the way :) ), the easiest way to build a iOS/Android/Web app with React Native is to do:
npm install -g expo-cli
expo init some-project
cd some-project
expo eject
You might have heard of Expo, but trust me, stay away from it. Expo highest value is that it's an already pre-configured 3 platforms environment, but if you don't eject then you're vendor-locked to what Expo has to offer in iOS and Android, which is very poor compared to going full React Native on these platforms, they can't even handle Google Sign In properly and by the way, even if your app is 10 lines of code your app size will be over 40 MB if you don't eject, yep it's that bad, plus the performance is regular and the loading times slow, not to mention that you're stuck with their build service which the free tier makes you wait for hours for a free build slot. It's important to note that when ejecting you don't lose the Web, you simply do expo start --web to start your dev environment and expo build:web to build a static website that you can serve with any web server. Regarding state management, don't bother with "lifting state up" philosophies mixed with Context API to manage your state, lifting state is a great pattern and helps your codebase, Context is great to avoid prop-drilling, but NEVER mix them to achieve app-wide state management, for that, simply go for Redux or MobX, the hype is all about Redux, but I consider MobX far better in many aspects. However, as you're getting new into this I would recommend you start with Redux AND PLEASE grab yourself npm install @manaflair/redux-batch so that you can batch updates and don't bring your app to a crawl. Forget that "connect HOC" thing with React-Redux, don't bother for a second with it, go with Hooks and useSelector and useDispatch and the likes, it will make your code SO much cleaner and smaller. Adopt clean and new Hooks philosophy, avoid writing class components as much as possible and write function components augmented with Hooks.
I'm a huge fan of Vue.js and I'm pretty comfortable with it.
I need to build a mobile app for my company and I was now wondering whether I could make use of VueJS with Vue Native instead of switching to React. I know Vue Native builds on top of RN. My question is whether I'd have as much freedom with Vue Native over RN and whether you feel like Vue Native is "production ready" or not.
Not sure of which shortcomings I may find using Vue Native...
Thanks a lot!!!
Vue Native is definitely production-ready in my experience. I've used both, have apps built with both in production right now, and both are fine technologies. As far as I can recall, there's nothing in RN that you can't do in VN. Given that, I would say go with "the devil you know".
That said, the one downside of VN over RN is that there are a lot more people using RN last I checked, so there are likely more resources readily available.
We did a lot of POC on this topic, Had multiple discussion between our developer a lot of R&D , Then we made our mind.
Flutter community is going better day by day, and a support of calling native code is going to help you achieving anything that you can't do in flutter.
Hot Reload is really hot.
And one of the good reason is it's web support.
I wanted to develop a student app that possibly could be used by many teams (students from other schools)
I chose Ionic, because:
single codebase: previously, we used React Native for Android and Angular for web/PWA, which was troublesome
portability: runs on PWA (which is important, because iOS license is too expensive for school app), web, Android iOS (+ others, if needed)
full use of web technologies: Next.js, Tailwind, React in this example (in oppose to Flutter/Java/Kotlin)
stability and maintainability: low-entry level due to basic web technologies without new syntax (in oppose to React Native and Flutter), web is really stable and won't lose support (which doesn't have to be true with Flutter/Dart)
I've yet to see a non-native application that I felt performed as well and/or provided the same user experience with Cordova/PhoneGap/Xamarin. Frankly, at best they all seemed like underpowered web applications deployed to a sandbox that ran on a phone. They didn't feel "slick" or "mobile-first" and in some cases the performance was unacceptable. At previous companies, we built a few of these apps at the client's insistence, and in every case, they re-engaged us about 18 months later to re-write the app(s) natively.
We are doing some research on React Native and Flutter, but I am not yet convinced that they can provide the same level of experience and performance as native, though I am trying to keep an open mind.
As a startup, we need the maximum flexibility and the ability to reach our customers in a more suitable way. So a hybrid application approach is the best because it allows you to develop a cross-platform application in a unique codebase.
The choice behind Ionic is Angular, I think that angular is the best framework to develop a complex application that needs a lot of service interaction, its modularity forces you (the developer) to write the code in the correct way, so it can be maintainable and reusable.
Native developmentwith the same awesome React framework!? SIGN ME UPPP!
It's the best of both worlds! The large, mature, and barebones set-up of React, combined with the native development approach of Flutter. What is there not to like?
Being familiar with JS and the React framework, I didn't want to learn an entirely different language like Dart.
Furthermore, I prefer functional programming. While React is not purely functional by any standard, its barebones approach makes it easier to customize the framework to your prefered paradigm and style, which is why I prefer it over other alternatives like Angular JS and Flutter.
Using React Native has opened me up to mobile development from the comfort of Javascript, and it's just been a really fun experience :)
Our stack roughly divides into three major components, the front-end, back-end and the data storage.
For the front-end, we have decided to go with React Native via Expo. This allows us to target both Android and iOS with a single codebase. Expo provides "managed workflows" and an SDK that will simplify development and deployment.
For the back-end, we have decided to use Python. Python is the language of choice for machine learning (ML). It has extensive support for traditional ML algorithms (e.g. random forests) via Scikit-Learn and the SciPy ecosystem. On top of this, our industry partner has provided us their current solution written in Python. We decided to expose the back-end as a REST API using FastAPI. This allows us to nicely separate concerns from the rest of the codebase. FastAPIs use of static type hints, validation with Pydantic, and automated documentation allows us to build better APIs faster.
For data storage we decided to use a MongoDB Atlas, a NoSQL database. We decided to use a NoSQL database because we need to store large amounts of data (e.g data from the wearable IMUs). Moreover, due to the ever changing nature of a startup we require flexibility. NoSQL databases are schema-free which enables us to modify our schema as we see fit.
We plan on using GitHub Actions (GA) to orchestrate our CI/CD. Given GAs broad support of languages and workflows, it's hard to go wrong with this decision. We will also be using GitHub for version control and project management, so having everything in one place is convenient.
The major components of our CI/CD for the backend will consist of black for autoformatting, flake8 for linting, pytest for unit-testing, and mypy for static type checking and codecov for coverage reporting. We plan to use separate Docker containers to package the back-end and front-end components and use Docker Compose to launch the app. This allows us to better separate concerns, manage dependencies, and ensure our app is deployable anywhere.
We will use Flutter for our athlete-facing mobile app. Flutter is a cross-platform app development framework, which boasts native performance and allows for creating beautiful, fluid user interfaces.
React Native may sound like a more appropriate option given our choice of frontend technologies, but we foresee little to no feature overlap in the web dashboard and mobile app. Ease of use, performance, good user experiences are key to encouraging athletes to use our app, something which React Native makes difficult, and is where Flutter excels.
We will use the test and flutter_test packages to test our Flutter app
We chose Flutter since we are developing a mobile application that needs to be performant (to handle displaying large amounts of data and video uploading) and would cover both Android and iOS systems.
Since we want the app to be cross-platform, two frameworks comes in to mind: Flutter and React Native. As shown below, Flutter's performance and out-of-the-box support impressed us to pick it as our framework for our mobile app.
React Native has been a dominant force in cross-platform app development since its launch by Facebook. The ability to write React-like code and have it compile to both iOS and Android makes developing mobile apps much easier. However, the overhead done to bridge Javascript code into native code means React Native apps might not be as performant. Moreover, React Native, much like React, is an unopinionated framework that covers minimal functionality out-of-the-box. This means that most functionalities would have to be relied on third-party libraries or developers would have to write their own native code.
Flutter, on the other hand, is a much newer framework developed by Google. While Flutter uses Dart, a relatively new language compared to JS, syntax-wise it is similar enough to that a JS developer should be able to pick it up in no time. The Flutter engine also compiles directly into native code, making it more performant when compared with React Native. Flutter is also an opinionated framework, with a much large stack of Widgets to choose from out-of-the-box. The Widgets are also designed according to Material design principles, making styling easier.
I've made 6 professional/business applications with React Native before choosing Flutter/Dart for the new version of WinMinuteConso (historical in Ionic...). Multi Platform is far more stable, Dart is far more powerful, the whole process is really better...
It is just hard to find the proper software architecture...
1 code deploys for both: Android and iOS.
There is a huge community behind React Native. And one of the best things is Expo. Expo uses React Native to make everything even more and more simple. Awesome technologies.
Some other important thing is that while using React Native, you are reusing all JavaScript knowledge you have in your team. You can move easily a frontend dev to develop mobile applications.
A huge PRO of Expo, is that it includes a full building process. You run 1 line in the terminal, and 10 minutes after you have 2 builds done. Double check EAS Expo.
No need for Mac to build iOS apps in Telerik Platform
4
Extended CLI support
4
Cloud builds as part of Telerik PLatform
4
Truly Object-Oriented with Typescript
4
On-device debugging
4
Extensibility
3
Access to entire native api
3
Live reload
3
Easiest of all other frameworks
3
Easy to learn
3
Backed by google
3
0 day support for new OS updates
3
Publishing modules to NPM
2
Vue.js support out of the box
2
VueJS support
2
Svelte support
2
Powerfull mobile services as part of Telerik Platform
2
Native ui with angular
2
Vue support
1
Playground
1
Hot Reload
1
HMR via webpack
1
Very small app size
1
Write once, use anywhere
1
Easy to use, support for almost all npm packages
1
Rich ecosystem
1
Compile to Apple/Google Stores via CloudCompiler
1
Has CSS ;-)
1
It works with Angular
1
Code reuse with your website
0
Dart
Pros of React Native
214
Learn once write everywhere
174
Cross platform
169
Javascript
122
Native ios components
69
Built by facebook
66
Easy to learn
46
Bridges me into ios development
40
It's just react
39
No compile
36
Declarative
22
Fast
13
Virtual Dom
12
Insanely fast develop / test cycle
12
Livereload
11
Great community
9
It is free and open source
9
Native android components
9
Easy setup
9
Backed by Facebook
7
Highly customizable
7
Scalable
6
Awesome
6
Everything component
6
Great errors
6
Win win solution of hybrid app
5
Not dependent on anything such as Angular
5
Simple
4
Awesome, easy starting from scratch
4
OTA update
3
As good as Native without any performance concerns
3
Easy to use
2
Many salary
2
Can be incrementally added to existing native apps
2
Hot reload
2
Over the air update (Flutter lacks)
2
'It's just react'
2
Web development meets Mobile development
1
Ngon
Pros of Xamarin
121
Power of c# on mobile devices
81
Native performance
79
Native apps with native ui controls
73
No javascript - truely compiled code
67
Sharing more than 90% of code over all platforms
45
Ability to leverage visual studio
44
Mvvm pattern
44
Many great c# libraries
36
Amazing support
34
Powerful platform for .net developers
19
GUI Native look and Feel
16
Nuget package manager
12
Free
9
Backed by Microsoft
9
Enables code reuse on server
8
Faster Development
7
Use of third-party .NET libraries
7
It's free since Apr 2016
7
Best performance than other cross-platform
7
Easy Debug and Trace
7
Open Source
6
Mac IDE (Xamarin Studio)
6
Xamarin.forms is the best, it's amazing
5
That just work for every scenario
5
C# mult paradigm language
5
Power of C#, no javascript, visual studio
4
Great docs
4
Compatible to develop Hybrid apps
4
Microsoft stack
4
Microsoft backed
3
Well Designed
3
Small learning curve for Mobile developers
2
Ionic
2
Ability to leverage legacy C and C++
Sign up to add or upvote prosMake informed product decisions
Cons of NativeScript
Cons of React Native
Cons of Xamarin
Cons of NativeScript
5
Lack of promotion
1
Slower Performance compared to competitors
Cons of React Native
23
Javascript
19
Built by facebook
12
Cant use CSS
4
30 FPS Limit
2
Slow
2
Generate large apk even for a simple app
2
Some compenents not truly native
Cons of Xamarin
9
Build times
5
Visual Studio
4
Price
3
Complexity
3
Scalability
2
Nuget
2
Maturity
2
Build Tools
2
Support
0
Maturidade
0
Performance
Sign up to add or upvote consMake informed product decisions
- No public GitHub repository available -
What is NativeScript?
NativeScript enables developers to build native apps for iOS, Android and Windows Universal while sharing the application code across the platforms. When building the application UI, developers use our libraries, which abstract the differences between the native platforms.
What is React Native?
React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about - learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.
What is Xamarin?
Xamarinâs Mono-based products enable .NET developers to use their existing code, libraries and tools (including Visual Studio*), as well as skills in .NET and the C# programming language, to create mobile applications for the industryâs most widely-used mobile devices, including Android-based smartphones and tablets, iPhone, iPad and iPod Touch.
Need advice about which tool to choose?Ask the StackShare community!
What are some alternatives to NativeScript, React Native, and Xamarin?
Ionic
Free and open source, Ionic offers a library of mobile and desktop-optimized HTML, CSS and JS components for building highly interactive apps. Use with Angular, React, Vue, or plain JavaScript.
React
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
Vue Native
Vue Native is a mobile framework to build truly native mobile app using Vue.js. Its is designed to connect React Native and Vue.js.
Vue Native is a wrapper around React Native APIs, which allows you to use Vue.js and compose rich mobile User Interface.
Flutter
Flutter is a mobile app SDK to help developers and designers build modern mobile apps for iOS and Android.
Swift
Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project â or for addition into your current app â because Swift code works side-by-side with Objective-C.