React Native is a popular open-source mobile application framework developed by Facebook that allows developers to build cross-platform apps using JavaScript and React. It offers hot reloading, reusable components, and a large community of developers. However, React Native has limitations such as slower performance compared to native apps, limited access to certain native features, and issues with version compatibility.\n\n

    \n
  1. Flutter: Flutter is a UI toolkit developed by Google that enables developers to create natively compiled applications for mobile, web, and desktop from a single codebase. Key features include hot reload, expressive and flexible UI, and a rich set of pre-built widgets. Pros of Flutter include fast performance, customizable UI, and a declarative programming paradigm, while cons include a larger app size and a steeper learning curve compared to React Native.\n

  2. Xamarin: Xamarin is a Microsoft-owned framework for building cross-platform apps using C# and .NET. Key features include code sharing across platforms, native API integration, and access to platform-specific APIs. Pros of Xamarin include strong performance, advanced debugging tools, and seamless integration with Visual Studio, while cons include a high licensing cost and limited community support compared to React Native.\n

  3. Ionic: Ionic is an open-source SDK for building cross-platform mobile, desktop, and progressive web apps using web technologies like HTML, CSS, and JavaScript. Key features include Ionic CLI for development, Angular integration, and Cordova plugins for native functionality. Pros of Ionic include easy learning curve, broad platform support, and a robust ecosystem of plugins, while cons include performance issues on older devices and limitations in handling complex animations.\n

  4. NativeScript: NativeScript is an open-source framework for building truly native mobile applications using JavaScript, TypeScript, or Angular. Key features include direct access to native APIs, Angular and Vue.js support, and hot module replacement. Pros of NativeScript include high performance, direct access to native APIs, and code sharing across platforms, while cons include a smaller community and learning curve compared to React Native.\n

  5. PhoneGap: PhoneGap, also known as Apache Cordova, is an open-source framework for building mobile applications using web technologies. Key features include easy integration with third-party libraries, access to native device features, and a large plugin ecosystem. Pros of PhoneGap include rapid development, support for multiple platforms, and compatibility with web technologies, while cons include slower performance compared to native apps and limited access to some native features.\n

  6. jQuery Mobile: jQuery Mobile is a touch-optimized web framework for building mobile apps using HTML, CSS, and JavaScript. Key features include a lightweight structure, theming tools, and a responsive design. Pros of jQuery Mobile include wide browser compatibility, easy integration with other frameworks, and a large community, while cons include limited support for modern features and a less modern codebase compared to React Native.\n

  7. Appcelerator Titanium: Appcelerator Titanium is a cross-platform development framework that enables developers to build native mobile applications using JavaScript, Alloy MVC framework, and Titanium APIs. Key features include rapid development, code reusability, and access to native APIs. Pros of Appcelerator Titanium include native performance, easy integration with existing codebases, and a large collection of APIs, while cons include a smaller community and a limited number of pre-built components compared to React Native.\n

  8. Sencha Ext JS: Sencha Ext JS is a comprehensive JavaScript framework for building data-intensive web applications and cross-platform mobile apps. Key features include extensive UI components, robust data management solutions, and support for MVVM architecture. Pros of Sencha Ext JS include powerful data visualization tools, seamless data integration, and a modern component library, while cons include a higher learning curve and a focus on enterprise-level applications compared to React Native.\n

  9. Corona SDK: Corona SDK is a cross-platform framework for building 2D games and applications using Lua. Key features include high-speed development, real-time simulation, and the Corona Marketplace for plugins and assets. Pros of Corona SDK include excellent 2D graphics support, fast development cycle, and a large developer community, while cons include limited support for complex 3D features and less flexibility compared to React Native.\n

  10. Kotlin Multiplatform: Kotlin Multiplatform is a modern programming language developed by JetBrains that allows developers to share code across multiple platforms including Android, iOS, and web. Key features include interoperability with existing Java codebases, support for asynchronous programming, and a powerful standard library. Pros of Kotlin Multiplatform include seamless integration with Android Studio, strong performance, and type safety, while cons include a smaller community and limited support for complex UI designs compared to React Native.\n\n","contactButtonSponsorId":"110427692128351665","followersCount":29059,"company":{"type":"id","generated":true,"id":"$Tool:101231774544144572.company","typename":"Company"},"path":"/react-native","slug":"react-native","followingTool":false,"alternativeTools":{"type":"id","generated":true,"id":"$Tool:101231774544144572.alternativeTools","typename":"ToolConnection"},"function":{"type":"id","generated":true,"id":"$Tool:101231774544144572.function","typename":"Function"},"layer":{"type":"id","generated":true,"id":"$Tool:101231774544144572.layer","typename":"Layer"},"category":{"type":"id","generated":true,"id":"$Tool:101231774544144572.category","typename":"Category"},"features":"Native iOS Components;Asynchronous Execution;Touch Handling;Flexbox and Styling; Polyfills","thumbUrl":"https://img.stackshare.io/service/2699/thumb_KoK6gHzp.jpg","thumbRetinaUrl":"https://img.stackshare.io/service/2699/thumb_retina_KoK6gHzp.jpg","verified":false,"pressUrl":"https://github.com/facebook/react-native","githubForksCount":24369,"githubStarsCount":119569,"title":"A framework for building native apps with React","twitterUsername":"reactnative","websiteUrl":"http://facebook.github.io/","stacks":33579,"votes":1156,"privateFollowers":{"type":"id","generated":true,"id":"$Tool:101231774544144572.privateFollowers","typename":"UserConnection"},"footerAlternateTools({\"first\":5})":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerAlternateTools({\"first\":5})","typename":"ToolConnection"},"footerNewTools({\"first\":5})":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerNewTools({\"first\":5})","typename":"ToolConnection"},"footerTopTools({\"first\":5})":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerTopTools({\"first\":5})","typename":"ToolConnection"},"footerRelatedStackups({\"first\":5})":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerRelatedStackups({\"first\":5})","typename":"StackupConnection"},"__typename":"Tool","canonicalUrl":"/react-native","fans":34396,"following":false,"followContext":null,"alternativeTools({\"first\":8})":{"type":"id","generated":true,"id":"$Tool:101231774544144572.alternativeTools({\"first\":8})","typename":"ToolConnection"}},"$Tool:101231774544144572.company":{"name":"React","slug":"react","stacks":[],"__typename":"Company"},"$Tool:101231774544144572.alternativeTools":{"count":907,"__typename":"ToolConnection"},"$Tool:101231774544144572.function":{"name":"Cross-Platform Mobile Development","slug":"cross-platform-mobile-development","__typename":"Function"},"$Tool:101231774544144572.layer":{"name":"Application and Data","slug":"application_and_data","__typename":"Layer"},"$Tool:101231774544144572.category":{"name":"Languages & Frameworks","slug":"languages-and-frameworks","__typename":"Category"},"$Tool:101231774544144572.privateFollowers":{"count":0,"__typename":"UserConnection"},"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.0.node":{"name":"Flutter","path":"/flutter","__typename":"Tool"},"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.0":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.0.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.1.node":{"name":"Swift","path":"/swift","__typename":"Tool"},"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.1":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.1.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.2.node":{"name":"Xamarin","path":"/xamarin","__typename":"Tool"},"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.2":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.2.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.3.node":{"name":"NativeScript","path":"/nativescript","__typename":"Tool"},"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.3":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.3.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.4.node":{"name":"React","path":"/react","__typename":"Tool"},"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.4":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.4.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerAlternateTools({\"first\":5})":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.0","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.1","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.2","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.3","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerAlternateTools({\"first\":5}).edges.4","typename":"ToolEdge"}],"__typename":"ToolConnection"},"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.0.node":{"name":"Flyde","path":"/flyde","__typename":"Tool"},"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.0":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.0.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.1.node":{"name":"GPTScript","path":"/gptscript","__typename":"Tool"},"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.1":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.1.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.2.node":{"name":"FastUI","path":"/fastui","__typename":"Tool"},"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.2":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.2.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.3.node":{"name":"LLRT","path":"/llrt","__typename":"Tool"},"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.3":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.3.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.4.node":{"name":"htmz","path":"/htmz","__typename":"Tool"},"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.4":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.4.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerNewTools({\"first\":5})":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.0","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.1","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.2","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.3","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerNewTools({\"first\":5}).edges.4","typename":"ToolEdge"}],"__typename":"ToolConnection"},"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.0.node":{"name":"JavaScript","path":"/javascript","__typename":"Tool"},"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.0":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.0.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.1.node":{"name":"Python","path":"/python","__typename":"Tool"},"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.1":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.1.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.2.node":{"name":"Node.js","path":"/nodejs","__typename":"Tool"},"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.2":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.2.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.3.node":{"name":"HTML5","path":"/html5","__typename":"Tool"},"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.3":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.3.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.4.node":{"name":"PHP","path":"/php","__typename":"Tool"},"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.4":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.4.node","typename":"Tool"},"__typename":"ToolEdge"},"$Tool:101231774544144572.footerTopTools({\"first\":5})":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.0","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.1","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.2","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.3","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerTopTools({\"first\":5}).edges.4","typename":"ToolEdge"}],"__typename":"ToolConnection"},"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.0.node":{"path":"/stackups/nativescript-vs-react-native","title":"NativeScript vs React Native","__typename":"Stackup"},"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.0":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.0.node","typename":"Stackup"},"__typename":"StackupEdge"},"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.1.node":{"path":"/stackups/ionic-vs-nativescript-vs-react-native","title":"Ionic vs NativeScript vs React Native","__typename":"Stackup"},"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.1":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.1.node","typename":"Stackup"},"__typename":"StackupEdge"},"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.2.node":{"path":"/stackups/ionic-vs-phonegap-vs-react-native","title":"Ionic vs PhoneGap vs React Native","__typename":"Stackup"},"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.2":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.2.node","typename":"Stackup"},"__typename":"StackupEdge"},"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.3.node":{"path":"/stackups/nativescript-vs-react-native-vs-xamarin","title":"NativeScript vs React Native vs Xamarin","__typename":"Stackup"},"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.3":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.3.node","typename":"Stackup"},"__typename":"StackupEdge"},"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.4.node":{"path":"/stackups/ionic-vs-react-native","title":"Ionic vs React Native","__typename":"Stackup"},"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.4":{"node":{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.4.node","typename":"Stackup"},"__typename":"StackupEdge"},"$Tool:101231774544144572.footerRelatedStackups({\"first\":5})":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.0","typename":"StackupEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.1","typename":"StackupEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.2","typename":"StackupEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.3","typename":"StackupEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.footerRelatedStackups({\"first\":5}).edges.4","typename":"StackupEdge"}],"__typename":"StackupConnection"},"ROOT_QUERY":{"tool({\"id\":\"react-native\"})":{"type":"id","generated":false,"id":"Tool:101231774544144572","typename":"Tool"},"tool({\"id\":\"101231774544144572\"})":{"type":"id","generated":false,"id":"Tool:101231774544144572","typename":"Tool"}},"$Tool:101231774544144572.alternativeTools({\"first\":8}).pageInfo":{"hasNextPage":true,"endCursor":"OA","__typename":"PageInfo"},"$Tool:101231774544144572.alternativeTools({\"first\":8})":{"pageInfo":{"type":"id","generated":true,"id":"$Tool:101231774544144572.alternativeTools({\"first\":8}).pageInfo","typename":"PageInfo"},"edges":[{"type":"id","generated":true,"id":"$Tool:101231774544144572.alternativeTools({\"first\":8}).edges.0","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.alternativeTools({\"first\":8}).edges.1","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.alternativeTools({\"first\":8}).edges.2","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.alternativeTools({\"first\":8}).edges.3","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.alternativeTools({\"first\":8}).edges.4","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.alternativeTools({\"first\":8}).edges.5","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.alternativeTools({\"first\":8}).edges.6","typename":"ToolEdge"},{"type":"id","generated":true,"id":"$Tool:101231774544144572.alternativeTools({\"first\":8}).edges.7","typename":"ToolEdge"}],"__typename":"ToolConnection"},"Tool:101231777036008618":{"id":"101231777036008618","path":"/flutter","slug":"flutter","title":"Cross-platform mobile framework from Google","votes":1175,"followingTool":false,"followersCount":16367,"stacks":16875,"githubForksCount":27644,"imageUrl":"https://img.stackshare.io/service/7180/flutter-mark-square-100.png","thumbRetinaUrl":"https://img.stackshare.io/service/7180/thumb_retina_flutter-mark-square-100.png","name":"Flutter","description":"Flutter is a mobile app SDK to help developers and designers build modern mobile apps for iOS and Android.","contactEnabled":false,"contactButtonText":"Monitor Flutter errors & performance with Sentry","contactButtonSponsorId":"110427692483881523","contactFlow":{"type":"json","json":{"links":[{"url":"https://sentry.io/for/flutter/?utm_source=stackshare&utm_medium=paid-community&utm_campaign=flutter&utm_content=cta-ad","type":"website"}],"steps":["direct_link"]}},"pros":{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros","typename":"ReasonConnection"},"cons":{"type":"id","generated":true,"id":"$Tool:101231777036008618.cons","typename":"ReasonConnection"},"verified":false,"canonicalUrl":"/flutter","fans":18199,"following":false,"followContext":null,"__typename":"Tool","stackDecisionsWithAlternatives({\"first\":2})":{"type":"id","generated":true,"id":"$Tool:101231777036008618.stackDecisionsWithAlternatives({\"first\":2})","typename":"StackDecisionConnection"}},"Reason:101978470071894641":{"id":"101978470071894641","upvoted":false,"upvotesCount":143,"text":"Hot Reload","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.0":{"node":{"type":"id","generated":false,"id":"Reason:101978470071894641","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470084373096":{"id":"101978470084373096","upvoted":false,"upvotesCount":123,"text":"Cross platform","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.1":{"node":{"type":"id","generated":false,"id":"Reason:101978470084373096","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470072054613":{"id":"101978470072054613","upvoted":false,"upvotesCount":105,"text":"Performance","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.2":{"node":{"type":"id","generated":false,"id":"Reason:101978470072054613","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470072364320":{"id":"101978470072364320","upvoted":false,"upvotesCount":89,"text":"Backed by Google","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.3":{"node":{"type":"id","generated":false,"id":"Reason:101978470072364320","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470072503546":{"id":"101978470072503546","upvoted":false,"upvotesCount":73,"text":"Compiled into Native Code","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.4":{"node":{"type":"id","generated":false,"id":"Reason:101978470072503546","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470077202000":{"id":"101978470077202000","upvoted":false,"upvotesCount":61,"text":"Fast Development","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.5":{"node":{"type":"id","generated":false,"id":"Reason:101978470077202000","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470072292374":{"id":"101978470072292374","upvoted":false,"upvotesCount":58,"text":"Open Source","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.6":{"node":{"type":"id","generated":false,"id":"Reason:101978470072292374","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470081255400":{"id":"101978470081255400","upvoted":false,"upvotesCount":53,"text":"Fast Prototyping","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.7":{"node":{"type":"id","generated":false,"id":"Reason:101978470081255400","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470076934817":{"id":"101978470076934817","upvoted":false,"upvotesCount":49,"text":"Single Codebase","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.8":{"node":{"type":"id","generated":false,"id":"Reason:101978470076934817","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470077382623":{"id":"101978470077382623","upvoted":false,"upvotesCount":48,"text":"Expressive and Flexible UI","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.9":{"node":{"type":"id","generated":false,"id":"Reason:101978470077382623","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470072689277":{"id":"101978470072689277","upvoted":false,"upvotesCount":36,"text":"Reactive Programming","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.10":{"node":{"type":"id","generated":false,"id":"Reason:101978470072689277","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470232915759":{"id":"101978470232915759","upvoted":false,"upvotesCount":34,"text":"Material Design","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.11":{"node":{"type":"id","generated":false,"id":"Reason:101978470232915759","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:102133817958310354":{"id":"102133817958310354","upvoted":false,"upvotesCount":30,"text":"Dart","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.12":{"node":{"type":"id","generated":false,"id":"Reason:102133817958310354","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470089168725":{"id":"101978470089168725","upvoted":false,"upvotesCount":29,"text":"Widget-based","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.13":{"node":{"type":"id","generated":false,"id":"Reason:101978470089168725","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470073666999":{"id":"101978470073666999","upvoted":false,"upvotesCount":26,"text":"Target to Fuchsia","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.14":{"node":{"type":"id","generated":false,"id":"Reason:101978470073666999","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470175905270":{"id":"101978470175905270","upvoted":false,"upvotesCount":20,"text":"IOS + Android","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.15":{"node":{"type":"id","generated":false,"id":"Reason:101978470175905270","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103970687583236625":{"id":"103970687583236625","upvoted":false,"upvotesCount":17,"text":"Easy to learn","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.16":{"node":{"type":"id","generated":false,"id":"Reason:103970687583236625","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470077614565":{"id":"101978470077614565","upvoted":false,"upvotesCount":16,"text":"Great CLI Support","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.17":{"node":{"type":"id","generated":false,"id":"Reason:101978470077614565","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470091583088":{"id":"101978470091583088","upvoted":false,"upvotesCount":14,"text":"You can use it as mobile, web, Server development ","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.18":{"node":{"type":"id","generated":false,"id":"Reason:101978470091583088","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470073008295":{"id":"101978470073008295","upvoted":false,"upvotesCount":14,"text":"Tooling","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.19":{"node":{"type":"id","generated":false,"id":"Reason:101978470073008295","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:102776510821874274":{"id":"102776510821874274","upvoted":false,"upvotesCount":13,"text":"Debugging quickly","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.20":{"node":{"type":"id","generated":false,"id":"Reason:102776510821874274","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103456726827762974":{"id":"103456726827762974","upvoted":false,"upvotesCount":13,"text":"Have built-in Material theme","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.21":{"node":{"type":"id","generated":false,"id":"Reason:103456726827762974","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470073188949":{"id":"101978470073188949","upvoted":false,"upvotesCount":12,"text":"Target to Android","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.22":{"node":{"type":"id","generated":false,"id":"Reason:101978470073188949","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103456755991453568":{"id":"103456755991453568","upvoted":false,"upvotesCount":12,"text":"Good docs & sample code","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.23":{"node":{"type":"id","generated":false,"id":"Reason:103456755991453568","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103550910503663094":{"id":"103550910503663094","upvoted":false,"upvotesCount":12,"text":"Community","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.24":{"node":{"type":"id","generated":false,"id":"Reason:103550910503663094","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103456749610085014":{"id":"103456749610085014","upvoted":false,"upvotesCount":11,"text":"Support by multiple IDE: Android Studio, VS Code, XCode","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.25":{"node":{"type":"id","generated":false,"id":"Reason:103456749610085014","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103456739853549942":{"id":"103456739853549942","upvoted":false,"upvotesCount":10,"text":"Written by Dart, which is easy to read code","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.26":{"node":{"type":"id","generated":false,"id":"Reason:103456739853549942","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470072874515":{"id":"101978470072874515","upvoted":false,"upvotesCount":10,"text":"Easy Testing Support","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.27":{"node":{"type":"id","generated":false,"id":"Reason:101978470072874515","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470073425708":{"id":"101978470073425708","upvoted":false,"upvotesCount":9,"text":"Target to iOS","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.28":{"node":{"type":"id","generated":false,"id":"Reason:101978470073425708","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470132900676":{"id":"101978470132900676","upvoted":false,"upvotesCount":9,"text":"Real platform free framework of the future","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.29":{"node":{"type":"id","generated":false,"id":"Reason:101978470132900676","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103456727474148589":{"id":"103456727474148589","upvoted":false,"upvotesCount":9,"text":"Have built-in Cupertino theme","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.30":{"node":{"type":"id","generated":false,"id":"Reason:103456727474148589","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103456730711800374":{"id":"103456730711800374","upvoted":false,"upvotesCount":8,"text":"Easy to Widget Test","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.31":{"node":{"type":"id","generated":false,"id":"Reason:103456730711800374","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103456730038638063":{"id":"103456730038638063","upvoted":false,"upvotesCount":8,"text":"Easy to Unit Test","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.32":{"node":{"type":"id","generated":false,"id":"Reason:103456730038638063","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:111746346605653439":{"id":"111746346605653439","upvoted":false,"upvotesCount":1,"text":"Large Community","__typename":"Reason"},"$Tool:101231777036008618.pros.edges.33":{"node":{"type":"id","generated":false,"id":"Reason:111746346605653439","typename":"Reason"},"__typename":"ReasonEdge"},"$Tool:101231777036008618.pros":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.0","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.1","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.2","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.3","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.4","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.5","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.6","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.7","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.8","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.9","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.10","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.11","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.12","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.13","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.14","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.15","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.16","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.17","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.18","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.19","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.20","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.21","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.22","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.23","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.24","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.25","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.26","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.27","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.28","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.29","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.30","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.31","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.32","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.pros.edges.33","typename":"ReasonEdge"}],"__typename":"ReasonConnection"},"Reason:101978470249481519":{"id":"101978470249481519","upvoted":false,"upvotesCount":29,"text":"Need to learn Dart","__typename":"Reason"},"$Tool:101231777036008618.cons.edges.0":{"node":{"type":"id","generated":false,"id":"Reason:101978470249481519","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470090935642":{"id":"101978470090935642","upvoted":false,"upvotesCount":11,"text":"Lack of community support","__typename":"Reason"},"$Tool:101231777036008618.cons.edges.1":{"node":{"type":"id","generated":false,"id":"Reason:101978470090935642","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470128738673":{"id":"101978470128738673","upvoted":false,"upvotesCount":10,"text":"No 3D Graphics Engine Support","__typename":"Reason"},"$Tool:101231777036008618.cons.edges.2":{"node":{"type":"id","generated":false,"id":"Reason:101978470128738673","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103046543676550266":{"id":"103046543676550266","upvoted":false,"upvotesCount":8,"text":"Graphics programming","__typename":"Reason"},"$Tool:101231777036008618.cons.edges.3":{"node":{"type":"id","generated":false,"id":"Reason:103046543676550266","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:102173936093060859":{"id":"102173936093060859","upvoted":false,"upvotesCount":6,"text":"Lack of friendly documentation","__typename":"Reason"},"$Tool:101231777036008618.cons.edges.4":{"node":{"type":"id","generated":false,"id":"Reason:102173936093060859","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:102173933635304122":{"id":"102173933635304122","upvoted":false,"upvotesCount":2,"text":"Lack of promotion","__typename":"Reason"},"$Tool:101231777036008618.cons.edges.5":{"node":{"type":"id","generated":false,"id":"Reason:102173933635304122","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103949878881244850":{"id":"103949878881244850","upvoted":false,"upvotesCount":1,"text":"Https://iphtechnologies.com/difference-between-flutter","__typename":"Reason"},"$Tool:101231777036008618.cons.edges.6":{"node":{"type":"id","generated":false,"id":"Reason:103949878881244850","typename":"Reason"},"__typename":"ReasonEdge"},"$Tool:101231777036008618.cons":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231777036008618.cons.edges.0","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.cons.edges.1","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.cons.edges.2","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.cons.edges.3","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.cons.edges.4","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.cons.edges.5","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.cons.edges.6","typename":"ReasonEdge"}],"__typename":"ReasonConnection"},"User:102904792277983462":{"id":"102904792277983462","username":"vaibhavtaunk","title":"Team Lead","companyName":"Technovert","imageUrl":"https://img.stackshare.io/user/312170/default_f4652342c69902d35342a0dd405393960ce77b77.jpeg","thumbUrl":"https://img.stackshare.io/user/312170/thumb_f4652342c69902d35342a0dd405393960ce77b77.jpeg","displayName":"Vaibhav Taunk","__typename":"User"},"StackDecision:102904881764135954":{"user":{"type":"id","generated":false,"id":"User:102904792277983462","typename":"User"},"company":null,"link":null,"publicId":"102904881764135954","publishedAt":"2019-10-04T15:44:41Z","id":"102904881764135954","htmlContent":"

    I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development.\nUsing Postman, Markdown and Visual Studio Code for development.","viewCount":4228432,"upvotesCount":31,"services":[{"type":"id","generated":false,"id":"Tool:101231776647396130","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776171224926","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777036008618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774544144572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773990286939","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773905830618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775423888689","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"Tool:101231776647396130":{"id":"101231776647396130","name":".NET Core","slug":"dot-net-core","title":"An Open Source, General-Purpose Development Platform Maintained by Microsoft and the .NET Community","verified":false,"imageUrl":"https://img.stackshare.io/service/6403/default_91fc1f0ee315262794273aa1387eaf8fed8436e6.png","canonicalUrl":"/dot-net-core","path":"/dot-net-core","votes":155,"fans":3492,"stacks":4476,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776171224926":{"id":"101231776171224926","name":"Angular CLI","slug":"angular-cli","title":"A command line interface for Angular","verified":false,"imageUrl":"https://img.stackshare.io/service/5527/9kVhSQ9y_400x400.jpg","canonicalUrl":"/angular-cli","path":"/angular-cli","votes":0,"fans":987,"stacks":900,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773849098825":{"id":"101231773849098825","name":"React","slug":"react","title":"A JavaScript library for building user interfaces","verified":false,"imageUrl":"https://img.stackshare.io/service/1020/OYIaJ1KK.png","canonicalUrl":"/react","path":"/react","votes":4076,"fans":162954,"stacks":173174,"following":false,"followContext":null,"__typename":"Tool","followingTool":false,"followersCount":142918,"githubForksCount":47063,"thumbRetinaUrl":"https://img.stackshare.io/service/1020/thumb_retina_OYIaJ1KK.png","description":"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.","contactEnabled":false,"contactButtonText":"Monitor React Errors & Performance with Sentry","contactButtonSponsorId":"110427691830338254","contactFlow":{"type":"json","json":{"links":[{"url":"https://sentry.io/for/react/?utm_source=stackshare&utm_medium=paid-community&utm_campaign=react&utm_content=cta-ad","type":"website"}],"steps":["direct_link"]}},"pros":{"type":"id","generated":true,"id":"$Tool:101231773849098825.pros","typename":"ReasonConnection"},"cons":{"type":"id","generated":true,"id":"$Tool:101231773849098825.cons","typename":"ReasonConnection"},"stackDecisionsWithAlternatives({\"first\":2})":{"type":"id","generated":true,"id":"$Tool:101231773849098825.stackDecisionsWithAlternatives({\"first\":2})","typename":"StackDecisionConnection"}},"Tool:101231773854388643":{"id":"101231773854388643","name":"MongoDB","slug":"mongodb","title":"The database for giant ideas","verified":true,"imageUrl":"https://img.stackshare.io/service/1030/leaf-360x360.png","canonicalUrl":"/mongodb","path":"/mongodb","votes":4131,"fans":93815,"stacks":93565,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773990286939":{"id":"101231773990286939","name":"Postman","slug":"postman","title":"Only complete API development environment","verified":true,"imageUrl":"https://img.stackshare.io/service/1336/xWMRvm_5_400x400.png","canonicalUrl":"/postman","path":"/postman","votes":1797,"fans":94209,"stacks":94499,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773905830618":{"id":"101231773905830618","name":"Markdown","slug":"markdown","title":"Text-to-HTML conversion tool/syntax for web writers, by John Gruber","verified":false,"imageUrl":"https://img.stackshare.io/service/1147/markdown.png","canonicalUrl":"/markdown","path":"/markdown","votes":960,"fans":20520,"stacks":21720,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775423888689":{"id":"101231775423888689","name":"Visual Studio Code","slug":"visual-studio-code","title":"Build and debug modern web and cloud applications, by Microsoft","verified":true,"imageUrl":"https://img.stackshare.io/service/4202/Visual_Studio_Code_logo.png","canonicalUrl":"/visual-studio-code","path":"/visual-studio-code","votes":2280,"fans":184089,"stacks":179464,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231777036008618.stackDecisionsWithAlternatives({\"first\":2}).edges.0":{"node":{"type":"id","generated":false,"id":"StackDecision:102904881764135954","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"User:105630065382441389":{"id":"105630065382441389","username":"joseluisalvaradoramirez","title":"","companyName":"","imageUrl":"https://img.stackshare.io/user/862256/default_1c8f339061805643e96041799a0427b5107f2a43.jpg","thumbUrl":"https://img.stackshare.io/user/862256/thumb_1c8f339061805643e96041799a0427b5107f2a43.jpg","displayName":"Jose Luis Alvarado Ramirez","__typename":"User"},"StackDecision:108966300582672163":{"user":{"type":"id","generated":false,"id":"User:105630065382441389","typename":"User"},"company":null,"link":{"type":"id","generated":true,"id":"$StackDecision:108966300582672163.link","typename":"Link"},"publicId":"108966300582672163","publishedAt":"2022-09-09T03:23:15Z","id":"108966300582672163","htmlContent":"

    The only two programming languages I know are Python and Dart, I fall in love with Dart when I learned about the type safeness, ease of refactoring, and the help of the IDE. I have an idea for an app, a simple app, but I need SEO and server rendering, and I also want it to be available on all platforms. I can't use Flutter or Dart anymore because of that. I have been searching and looks like there is no way to avoid learning HTML and CSS for this. I want to use Supabase as BASS, at the moment I think that I have two options if I want to learn the least amount of things because of my lack of time available:\n\n

      \n
    1. Quasar Framework:\nThey claim that I can do all the things I need, but I have to use JavaScript, and I am going to have all those bugs with a type-safe programming language avoidable. I guess I can use TypeScript?, but that means learning both, and I am not sure if I will be able to use 100% Typescript. Besides Vue.js, Node.js, etc.\n

    2. Blazor and .NET:\nThere is MAUI with razor bindings in .Net now, and also a Blazor server. And as far as I can see, the transition from Dart to C# will be easy. I guess that I have to learn some Javascript here and there, but I have to less things I guess, am I wrong? But Blazor is a new technology, Vue is widely used.\n","viewCount":639827,"upvotesCount":21,"services":[{"type":"id","generated":false,"id":"Tool:101231773846783660","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773846359247","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777645779303","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775222204089","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774098455524","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773939333405","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:102339069088396450","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:104279141649547050","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777036008618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774111549176","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"$StackDecision:108966300582672163.link":{"url":"https://www.reddit.com/r/learnprogramming/comments/x4fzjw/blazor_or_quasar/?utm_source=share&utm_medium=web2x&context=3","title":"Reddit - Dive into anything","__typename":"Link"},"Tool:101231773846783660":{"id":"101231773846783660","name":"C#","slug":"c-sharp","title":"Simple, general-purpose, object-oriented programming language for the .NET platform","verified":true,"imageUrl":"https://img.stackshare.io/service/1015/1200px-C_Sharp_wordmark.svg.png","canonicalUrl":"/c-sharp","path":"/c-sharp","votes":2144,"fans":52610,"stacks":57994,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773846359247":{"id":"101231773846359247","name":".NET","slug":"dot-net","title":"A free, cross-platform, open source developer platform for building many different types of applications","verified":true,"imageUrl":"https://img.stackshare.io/service/1014/IoPy1dce_400x400.png","canonicalUrl":"/dot-net","path":"/dot-net","votes":1859,"fans":7288,"stacks":10129,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231777645779303":{"id":"101231777645779303","name":"Blazor","slug":"blazor","title":"An experimental web UI framework using C#/Razor and HTML, running in the browser via WebAssembly","verified":false,"imageUrl":"https://img.stackshare.io/service/8436/BrandBlazor_nohalo_1000x.png","canonicalUrl":"/blazor","path":"/blazor","votes":445,"fans":850,"stacks":533,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773845103618":{"id":"101231773845103618","name":"Node.js","slug":"nodejs","title":"A platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications","verified":false,"imageUrl":"https://img.stackshare.io/service/1011/n1JRsFeB_400x400.png","canonicalUrl":"/nodejs","path":"/nodejs","votes":8539,"fans":182893,"stacks":188668,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775222204089":{"id":"101231775222204089","name":"Vue.js","slug":"vue-js","title":"A progressive framework for building user interfaces","verified":false,"imageUrl":"https://img.stackshare.io/service/3837/paeckCWC.png","canonicalUrl":"/vue-js","path":"/vue-js","votes":1562,"fans":52160,"stacks":54329,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774098455524":{"id":"101231774098455524","name":"TypeScript","slug":"typescript","title":"A superset of JavaScript that compiles to clean JavaScript output","verified":false,"imageUrl":"https://img.stackshare.io/service/1612/bynNY5dJ.jpg","canonicalUrl":"/typescript","path":"/typescript","votes":502,"fans":83705,"stacks":94070,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773939333405":{"id":"101231773939333405","name":"JavaScript","slug":"javascript","title":"Lightweight, interpreted, object-oriented language with first-class functions","verified":false,"imageUrl":"https://img.stackshare.io/service/1209/javascript.jpeg","canonicalUrl":"/javascript","path":"/javascript","votes":8072,"fans":312869,"stacks":360975,"following":false,"followContext":null,"__typename":"Tool"},"Tool:102339069088396450":{"id":"102339069088396450","name":"Quasar Framework","slug":"quasar-framework","title":"Full front-end framework powered by Vue","verified":true,"imageUrl":"https://img.stackshare.io/service/11161/default_a64f61390e79c5008cd18e890d338259463f9af8.png","canonicalUrl":"/quasar-framework","path":"/quasar-framework","votes":404,"fans":910,"stacks":457,"following":false,"followContext":null,"__typename":"Tool"},"Tool:104279141649547050":{"id":"104279141649547050","name":"Supabase","slug":"supabase","title":"The open source Firebase alternative","verified":true,"imageUrl":"https://img.stackshare.io/service/12323/Z_q3YLKR_400x400.jpg","canonicalUrl":"/supabase","path":"/supabase","votes":29,"fans":514,"stacks":410,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774111549176":{"id":"101231774111549176","name":"Dart","slug":"dart","title":"A new web programming language with libraries, a virtual machine, and tools","verified":false,"imageUrl":"https://img.stackshare.io/service/1646/Twitter-02.png","canonicalUrl":"/dart","path":"/dart","votes":452,"fans":4473,"stacks":3913,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773837179153":{"id":"101231773837179153","name":"Python","slug":"python","title":"A clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.","verified":false,"imageUrl":"https://img.stackshare.io/service/993/pUBY5pVj.png","canonicalUrl":"/python","path":"/python","votes":6882,"fans":226768,"stacks":244934,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231777036008618.stackDecisionsWithAlternatives({\"first\":2}).edges.1":{"node":{"type":"id","generated":false,"id":"StackDecision:108966300582672163","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"$Tool:101231777036008618.stackDecisionsWithAlternatives({\"first\":2})":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231777036008618.stackDecisionsWithAlternatives({\"first\":2}).edges.0","typename":"StackDecisionEdge"},{"type":"id","generated":true,"id":"$Tool:101231777036008618.stackDecisionsWithAlternatives({\"first\":2}).edges.1","typename":"StackDecisionEdge"}],"__typename":"StackDecisionConnection"},"$Tool:101231774544144572.alternativeTools({\"first\":8}).edges.0":{"node":{"type":"id","generated":false,"id":"Tool:101231777036008618","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231773844232272":{"id":"101231773844232272","path":"/swift","slug":"swift","title":"An innovative new programming language for Cocoa and Cocoa Touch. ","votes":1275,"followingTool":false,"followersCount":13385,"stacks":20297,"githubForksCount":null,"imageUrl":"https://img.stackshare.io/service/1009/tuHsaI2U.png","thumbRetinaUrl":"https://img.stackshare.io/service/1009/thumb_retina_tuHsaI2U.png","name":"Swift","description":"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.","contactEnabled":false,"contactButtonText":"Monitor Swift errors & performance with Sentry","contactButtonSponsorId":"110427691789432355","contactFlow":{"type":"json","json":{"links":[{"url":"https://sentry.io/for/cocoa/?utm_source=stackshare&utm_medium=paid-community&utm_campaign=swift&utm_content=cta-ad","type":"website"}],"steps":["direct_link"]}},"pros":{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros","typename":"ReasonConnection"},"cons":{"type":"id","generated":true,"id":"$Tool:101231773844232272.cons","typename":"ReasonConnection"},"verified":false,"canonicalUrl":"/swift","fans":16530,"following":false,"followContext":null,"__typename":"Tool","stackDecisionsWithAlternatives({\"first\":2})":{"type":"id","generated":true,"id":"$Tool:101231773844232272.stackDecisionsWithAlternatives({\"first\":2})","typename":"StackDecisionConnection"}},"Reason:101978468369946617":{"id":"101978468369946617","upvoted":false,"upvotesCount":259,"text":"Ios","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.0":{"node":{"type":"id","generated":false,"id":"Reason:101978468369946617","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468490893128":{"id":"101978468490893128","upvoted":false,"upvotesCount":180,"text":"Elegant","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.1":{"node":{"type":"id","generated":false,"id":"Reason:101978468490893128","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468370408083":{"id":"101978468370408083","upvoted":false,"upvotesCount":126,"text":"Not Objective-C","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.2":{"node":{"type":"id","generated":false,"id":"Reason:101978468370408083","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468370675432":{"id":"101978468370675432","upvoted":false,"upvotesCount":107,"text":"Backed by apple","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.3":{"node":{"type":"id","generated":false,"id":"Reason:101978468370675432","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468370131129":{"id":"101978468370131129","upvoted":false,"upvotesCount":93,"text":"Type inference","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.4":{"node":{"type":"id","generated":false,"id":"Reason:101978468370131129","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468370259635":{"id":"101978468370259635","upvoted":false,"upvotesCount":61,"text":"Generics","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.5":{"node":{"type":"id","generated":false,"id":"Reason:101978468370259635","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468369982822":{"id":"101978468369982822","upvoted":false,"upvotesCount":54,"text":"Playgrounds","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.6":{"node":{"type":"id","generated":false,"id":"Reason:101978468369982822","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468576576100":{"id":"101978468576576100","upvoted":false,"upvotesCount":49,"text":"Semicolon free","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.7":{"node":{"type":"id","generated":false,"id":"Reason:101978468576576100","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468371060654":{"id":"101978468371060654","upvoted":false,"upvotesCount":38,"text":"OSX","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.8":{"node":{"type":"id","generated":false,"id":"Reason:101978468371060654","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468370509425":{"id":"101978468370509425","upvoted":false,"upvotesCount":36,"text":"Tuples offer compound variables","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.9":{"node":{"type":"id","generated":false,"id":"Reason:101978468370509425","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468758874229":{"id":"101978468758874229","upvoted":false,"upvotesCount":24,"text":"Clean Syntax","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.10":{"node":{"type":"id","generated":false,"id":"Reason:101978468758874229","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468638474667":{"id":"101978468638474667","upvoted":false,"upvotesCount":24,"text":"Easy to learn","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.11":{"node":{"type":"id","generated":false,"id":"Reason:101978468638474667","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469216433967":{"id":"101978469216433967","upvoted":false,"upvotesCount":22,"text":"Open Source","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.12":{"node":{"type":"id","generated":false,"id":"Reason:101978469216433967","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469144246865":{"id":"101978469144246865","upvoted":false,"upvotesCount":21,"text":"Beautiful Code","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.13":{"node":{"type":"id","generated":false,"id":"Reason:101978469144246865","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468772484637":{"id":"101978468772484637","upvoted":false,"upvotesCount":20,"text":"Functional","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.14":{"node":{"type":"id","generated":false,"id":"Reason:101978468772484637","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468490745993":{"id":"101978468490745993","upvoted":false,"upvotesCount":12,"text":"Dynamic","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.15":{"node":{"type":"id","generated":false,"id":"Reason:101978468490745993","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469284589985":{"id":"101978469284589985","upvoted":false,"upvotesCount":12,"text":"Linux","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.16":{"node":{"type":"id","generated":false,"id":"Reason:101978469284589985","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469356657087":{"id":"101978469356657087","upvoted":false,"upvotesCount":11,"text":"Protocol-oriented programming","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.17":{"node":{"type":"id","generated":false,"id":"Reason:101978469356657087","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468858805826":{"id":"101978468858805826","upvoted":false,"upvotesCount":10,"text":"Promotes safe, readable code","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.18":{"node":{"type":"id","generated":false,"id":"Reason:101978468858805826","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469294634087":{"id":"101978469294634087","upvoted":false,"upvotesCount":9,"text":"No S-l-o-w JVM","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.19":{"node":{"type":"id","generated":false,"id":"Reason:101978469294634087","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469049722977":{"id":"101978469049722977","upvoted":false,"upvotesCount":8,"text":"Explicit optionals","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.20":{"node":{"type":"id","generated":false,"id":"Reason:101978469049722977","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469336920356":{"id":"101978469336920356","upvoted":false,"upvotesCount":7,"text":"Storyboard designer","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.21":{"node":{"type":"id","generated":false,"id":"Reason:101978469336920356","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469884018427":{"id":"101978469884018427","upvoted":false,"upvotesCount":6,"text":"Optionals","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.22":{"node":{"type":"id","generated":false,"id":"Reason:101978469884018427","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469676863186":{"id":"101978469676863186","upvoted":false,"upvotesCount":6,"text":"Type safety","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.23":{"node":{"type":"id","generated":false,"id":"Reason:101978469676863186","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469385633473":{"id":"101978469385633473","upvoted":false,"upvotesCount":5,"text":"Super addicting language, great people, open, elegant","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.24":{"node":{"type":"id","generated":false,"id":"Reason:101978469385633473","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469337027869":{"id":"101978469337027869","upvoted":false,"upvotesCount":5,"text":"Best UI concept","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.25":{"node":{"type":"id","generated":false,"id":"Reason:101978469337027869","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469735486970":{"id":"101978469735486970","upvoted":false,"upvotesCount":4,"text":"Its friendly","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.26":{"node":{"type":"id","generated":false,"id":"Reason:101978469735486970","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469975036710":{"id":"101978469975036710","upvoted":false,"upvotesCount":4,"text":"Highly Readable codes","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.27":{"node":{"type":"id","generated":false,"id":"Reason:101978469975036710","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469450304937":{"id":"101978469450304937","upvoted":false,"upvotesCount":4,"text":"Fail-safe","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.28":{"node":{"type":"id","generated":false,"id":"Reason:101978469450304937","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103640370832366395":{"id":"103640370832366395","upvoted":false,"upvotesCount":4,"text":"Powerful","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.29":{"node":{"type":"id","generated":false,"id":"Reason:103640370832366395","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469530531999":{"id":"101978469530531999","upvoted":false,"upvotesCount":4,"text":"Faster and looks better","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.30":{"node":{"type":"id","generated":false,"id":"Reason:101978469530531999","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470095573486":{"id":"101978470095573486","upvoted":false,"upvotesCount":4,"text":"Swift is faster than Objective-C","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.31":{"node":{"type":"id","generated":false,"id":"Reason:101978470095573486","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470014378389":{"id":"101978470014378389","upvoted":false,"upvotesCount":4,"text":"Feels like a better C++","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.32":{"node":{"type":"id","generated":false,"id":"Reason:101978470014378389","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469635721554":{"id":"101978469635721554","upvoted":false,"upvotesCount":3,"text":"Easy to learn and work","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.33":{"node":{"type":"id","generated":false,"id":"Reason:101978469635721554","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469827276082":{"id":"101978469827276082","upvoted":false,"upvotesCount":3,"text":"Much more fun","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.34":{"node":{"type":"id","generated":false,"id":"Reason:101978469827276082","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470128981548":{"id":"101978470128981548","upvoted":false,"upvotesCount":3,"text":"Protocol extensions","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.35":{"node":{"type":"id","generated":false,"id":"Reason:101978470128981548","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:102995609806639898":{"id":"102995609806639898","upvoted":false,"upvotesCount":3,"text":"Native","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.36":{"node":{"type":"id","generated":false,"id":"Reason:102995609806639898","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470010556391":{"id":"101978470010556391","upvoted":false,"upvotesCount":3,"text":"Its fun and damn fast","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.37":{"node":{"type":"id","generated":false,"id":"Reason:101978470010556391","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103860097144998443":{"id":"103860097144998443","upvoted":false,"upvotesCount":3,"text":"Strong Type safety","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.38":{"node":{"type":"id","generated":false,"id":"Reason:103860097144998443","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469752697739":{"id":"101978469752697739","upvoted":false,"upvotesCount":3,"text":"Easy to Maintain","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.39":{"node":{"type":"id","generated":false,"id":"Reason:101978469752697739","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470233280775":{"id":"101978470233280775","upvoted":false,"upvotesCount":2,"text":"Protocol as type","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.40":{"node":{"type":"id","generated":false,"id":"Reason:101978470233280775","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:105815745043856861":{"id":"105815745043856861","upvoted":false,"upvotesCount":2,"text":"All Cons C# and Java Swift Already has","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.41":{"node":{"type":"id","generated":false,"id":"Reason:105815745043856861","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469955821927":{"id":"101978469955821927","upvoted":false,"upvotesCount":2,"text":"Esay ","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.42":{"node":{"type":"id","generated":false,"id":"Reason:101978469955821927","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469969875162":{"id":"101978469969875162","upvoted":false,"upvotesCount":2,"text":"MacOS","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.43":{"node":{"type":"id","generated":false,"id":"Reason:101978469969875162","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103640370465954667":{"id":"103640370465954667","upvoted":false,"upvotesCount":2,"text":"Type Safe","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.44":{"node":{"type":"id","generated":false,"id":"Reason:103640370465954667","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470233835421":{"id":"101978470233835421","upvoted":false,"upvotesCount":2,"text":"Protocol oriented programming","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.45":{"node":{"type":"id","generated":false,"id":"Reason:101978470233835421","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469564778638":{"id":"101978469564778638","upvoted":false,"upvotesCount":1,"text":"Can interface with C easily","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.46":{"node":{"type":"id","generated":false,"id":"Reason:101978469564778638","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:104395345227371120":{"id":"104395345227371120","upvoted":false,"upvotesCount":1,"text":"Actually don't have to own a mac","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.47":{"node":{"type":"id","generated":false,"id":"Reason:104395345227371120","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:105815752673813492":{"id":"105815752673813492","upvoted":false,"upvotesCount":1,"text":"Free from Memory Leak","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.48":{"node":{"type":"id","generated":false,"id":"Reason:105815752673813492","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470069876403":{"id":"101978470069876403","upvoted":false,"upvotesCount":1,"text":"Swift is easier to understand for non-iOS developers. ","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.49":{"node":{"type":"id","generated":false,"id":"Reason:101978470069876403","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469962553889":{"id":"101978469962553889","upvoted":false,"upvotesCount":1,"text":"Numbers with underbar","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.50":{"node":{"type":"id","generated":false,"id":"Reason:101978469962553889","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470233054711":{"id":"101978470233054711","upvoted":false,"upvotesCount":1,"text":"Optional chain ","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.51":{"node":{"type":"id","generated":false,"id":"Reason:101978470233054711","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:105815741298441164":{"id":"105815741298441164","upvoted":false,"upvotesCount":1,"text":"Great for Multi-Threaded Programming","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.52":{"node":{"type":"id","generated":false,"id":"Reason:105815741298441164","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:105854181250717682":{"id":"105854181250717682","upvoted":false,"upvotesCount":1,"text":"Runs Python 8 times faster ","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.53":{"node":{"type":"id","generated":false,"id":"Reason:105854181250717682","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:105797932437084967":{"id":"105797932437084967","upvoted":false,"upvotesCount":1,"text":"Objec","__typename":"Reason"},"$Tool:101231773844232272.pros.edges.54":{"node":{"type":"id","generated":false,"id":"Reason:105797932437084967","typename":"Reason"},"__typename":"ReasonEdge"},"$Tool:101231773844232272.pros":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.0","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.1","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.2","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.3","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.4","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.5","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.6","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.7","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.8","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.9","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.10","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.11","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.12","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.13","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.14","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.15","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.16","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.17","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.18","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.19","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.20","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.21","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.22","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.23","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.24","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.25","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.26","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.27","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.28","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.29","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.30","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.31","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.32","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.33","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.34","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.35","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.36","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.37","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.38","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.39","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.40","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.41","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.42","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.43","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.44","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.45","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.46","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.47","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.48","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.49","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.50","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.51","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.52","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.53","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.pros.edges.54","typename":"ReasonEdge"}],"__typename":"ReasonConnection"},"Reason:104041416683196439":{"id":"104041416683196439","upvoted":false,"upvotesCount":6,"text":"Must own a mac","__typename":"Reason"},"$Tool:101231773844232272.cons.edges.0":{"node":{"type":"id","generated":false,"id":"Reason:104041416683196439","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103020271812182969":{"id":"103020271812182969","upvoted":false,"upvotesCount":2,"text":"Memory leaks are not uncommon","__typename":"Reason"},"$Tool:101231773844232272.cons.edges.1":{"node":{"type":"id","generated":false,"id":"Reason:103020271812182969","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470025136830":{"id":"101978470025136830","upvoted":false,"upvotesCount":1,"text":"Very irritatingly picky about things that’s ","__typename":"Reason"},"$Tool:101231773844232272.cons.edges.2":{"node":{"type":"id","generated":false,"id":"Reason:101978470025136830","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103020274153449543":{"id":"103020274153449543","upvoted":false,"upvotesCount":1,"text":"Complicated process for exporting modules","__typename":"Reason"},"$Tool:101231773844232272.cons.edges.3":{"node":{"type":"id","generated":false,"id":"Reason:103020274153449543","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103020281556554953":{"id":"103020281556554953","upvoted":false,"upvotesCount":1,"text":"Its classes compile to roughly 300 lines of assembly","__typename":"Reason"},"$Tool:101231773844232272.cons.edges.4":{"node":{"type":"id","generated":false,"id":"Reason:103020281556554953","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470025266000":{"id":"101978470025266000","upvoted":false,"upvotesCount":1,"text":"Is a lot more effort than lua to make simple functions","__typename":"Reason"},"$Tool:101231773844232272.cons.edges.5":{"node":{"type":"id","generated":false,"id":"Reason:101978470025266000","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470261003522":{"id":"101978470261003522","upvoted":false,"upvotesCount":0,"text":"Overly complex options makes it easy to create bad code","__typename":"Reason"},"$Tool:101231773844232272.cons.edges.6":{"node":{"type":"id","generated":false,"id":"Reason:101978470261003522","typename":"Reason"},"__typename":"ReasonEdge"},"$Tool:101231773844232272.cons":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231773844232272.cons.edges.0","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.cons.edges.1","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.cons.edges.2","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.cons.edges.3","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.cons.edges.4","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.cons.edges.5","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.cons.edges.6","typename":"ReasonEdge"}],"__typename":"ReasonConnection"},"User:103881883034590149":{"id":"103881883034590149","username":"shivambhargava97","title":"AVP - Business","companyName":"VAYUZ Technologies Pvt. Ltd.","imageUrl":"https://img.stackshare.io/user/462613/default_d2bd4e52711752a001e1a56b125e015efb0351d2.jpg","thumbUrl":"https://img.stackshare.io/user/462613/thumb_d2bd4e52711752a001e1a56b125e015efb0351d2.jpg","displayName":"Shivam Bhargava","__typename":"User"},"StackDecision:103881959530526323":{"user":{"type":"id","generated":false,"id":"User:103881883034590149","typename":"User"},"company":null,"link":{"type":"id","generated":true,"id":"$StackDecision:103881959530526323.link","typename":"Link"},"publicId":"103881959530526323","publishedAt":"2020-03-25T05:08:00Z","id":"103881959530526323","htmlContent":"

      Hi Community! Trust everyone is keeping safe. I am exploring the idea of building a #Neobank (App) with end-to-end banking capabilities. In the process of exploring this space, I have come across multiple Apps (N26, Revolut, Monese, etc) and explored their stacks in detail. The confusion remains to be the Backend Tech to be used? \r\n\r\n

      What would you go with considering all of the languages such as Node.js Java Rails Python are suggested by some person or the other. As a general trend, I have noticed the usage of Node with React on the front or Node with a combination of Kotlin and Swift. Please suggest what would be the right approach!","viewCount":877841,"upvotesCount":22,"services":[{"type":"id","generated":false,"id":"Tool:101231773844232272","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775176212882","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773835996572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","typename":"Tool"}],"topics":[{"type":"id","generated":false,"id":"Topic:103881959524712023","typename":"Topic"}],"__typename":"StackDecision"},"$StackDecision:103881959530526323.link":{"url":"https://en.wikipedia.org/wiki/Neobank","title":"Neobank - Wikipedia","__typename":"Link"},"Tool:101231775176212882":{"id":"101231775176212882","name":"Kotlin","slug":"kotlin","title":"Statically typed Programming Language targeting JVM and JavaScript","verified":true,"imageUrl":"https://img.stackshare.io/service/3750/pCfEzr6L.png","canonicalUrl":"/kotlin","path":"/kotlin","votes":648,"fans":13703,"stacks":15307,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773835996572":{"id":"101231773835996572","name":"Rails","slug":"rails","title":"Web development that doesn't hurt","verified":false,"imageUrl":"https://img.stackshare.io/service/990/x57_Lorv.png","canonicalUrl":"/rails","path":"/rails","votes":5441,"fans":16798,"stacks":19471,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773838011785":{"id":"101231773838011785","name":"Java","slug":"java","title":"A concurrent, class-based, object-oriented, language specifically designed to have as few implementation dependencies as possible","verified":false,"imageUrl":"https://img.stackshare.io/service/995/K85ZWV2F.png","canonicalUrl":"/java","path":"/java","votes":3710,"fans":118500,"stacks":135236,"following":false,"followContext":null,"__typename":"Tool"},"Topic:103881959524712023":{"name":"Neobank","id":"103881959524712023","__typename":"Topic"},"$Tool:101231773844232272.stackDecisionsWithAlternatives({\"first\":2}).edges.0":{"node":{"type":"id","generated":false,"id":"StackDecision:103881959530526323","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"User:101232060335104864":{"id":"101232060335104864","username":"conor","title":"Tech Brand Mgr, Office of CTO","companyName":"Uber","imageUrl":"https://img.stackshare.io/user/139323/default_6e3b53ba36fc1cc7f7d8766d8e218302acb264db.jpeg","thumbUrl":"https://img.stackshare.io/user/139323/thumb_6e3b53ba36fc1cc7f7d8766d8e218302acb264db.jpeg","displayName":"Conor Myhrvold","__typename":"User"},"StackDecision:101184499246707744":{"user":{"type":"id","generated":false,"id":"User:101232060335104864","typename":"User"},"company":{"type":"id","generated":true,"id":"$StackDecision:101184499246707744.company","typename":"Company"},"link":{"type":"id","generated":true,"id":"$StackDecision:101184499246707744.link","typename":"Link"},"publicId":"101184499246707744","publishedAt":"2018-12-04T19:48:50Z","id":"101184499246707744","htmlContent":"

      Excerpts from how we developed (and subsequently open sourced) Uber's cross-platform mobile architecture framework, RIBs , going from Objective-C to Swift in the process for iOS: https://github.com/uber/RIBs\n\n

      Uber’s new application architecture (RIBs) extensively uses protocols to keep its various components decoupled and testable. We used this architecture for the first time in our new rider application and moved our primary language from Objective-C to Swift. Since Swift is a very static language, unit testing became problematic. Dynamic languages have good frameworks to build test mocks, stubs, or stand-ins by dynamically creating or modifying existing concrete classes.\n\n

      Needless to say, we were not very excited about the additional complexity of manually writing and maintaining mock implementations for each of our thousands of protocols.\n\n

      The information required to generate mock classes already exists in the Swift protocol. For Uber’s use case, we set out to create tooling that would let engineers automatically generate test mocks for any protocol they wanted by simply annotating them.\n\n

      The iOS codebase for our rider application alone incorporates around 1,500 of these generated mocks. Without our code generation tool, all of these would have to be written and maintained by hand, which would have made testing much more time-intensive. Auto-generated mocks have contributed a lot to the unit test coverage that we have today.\n\n

      We built these code generation tools ourselves for a number of reasons, including that there weren’t many open source tools available at the time we started our effort. Today, there are some great open source tools to generate resource accessors, like SwiftGen. And Sourcery can help you with generic code generation needs:\n\n

      https://eng.uber.com/code-generation/\nhttps://eng.uber.com/driver-app-ribs-architecture/\n\n

      (GitHub : https://github.com/uber/RIBs )","viewCount":2073899,"upvotesCount":13,"services":[{"type":"id","generated":false,"id":"Tool:101231777818464911","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773843750465","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773844232272","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"$StackDecision:101184499246707744.company":{"imageUrl":"https://img.stackshare.io/company/363/default_e5d5db9bd2df8488fe8e61913e700c52ec9c13e4.jpg","thumbUrl":"https://img.stackshare.io/company/363/thumb_e5d5db9bd2df8488fe8e61913e700c52ec9c13e4.jpg","name":"Uber Technologies","path":"/companies/uber-technologies","features":[],"__typename":"Company"},"$StackDecision:101184499246707744.link":{"url":"https://eng.uber.com/code-generation/","title":"Harnessing Code Generation to Increase Reliability & Productivity on iOS at Uber","__typename":"Link"},"Tool:101231777818464911":{"id":"101231777818464911","name":"RIBs","slug":"ribs","title":"Build cross-platform apps that have similar architecture, enabling iOS and Android teams to cross-review business logic code (by Uber)","verified":true,"imageUrl":"https://img.stackshare.io/service/8730/rib_horizontal_black.png","canonicalUrl":"/ribs","path":"/ribs","votes":0,"fans":84,"stacks":36,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773843750465":{"id":"101231773843750465","name":"Objective-C","slug":"objective-c","title":"The primary programming language you use when writing software for OS X and iOS","verified":false,"imageUrl":"https://img.stackshare.io/service/1008/xcode.png","canonicalUrl":"/objective-c","path":"/objective-c","votes":490,"fans":8514,"stacks":12658,"following":false,"followContext":null,"__typename":"Tool"},"$Tool:101231773844232272.stackDecisionsWithAlternatives({\"first\":2}).edges.1":{"node":{"type":"id","generated":false,"id":"StackDecision:101184499246707744","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"$Tool:101231773844232272.stackDecisionsWithAlternatives({\"first\":2})":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231773844232272.stackDecisionsWithAlternatives({\"first\":2}).edges.0","typename":"StackDecisionEdge"},{"type":"id","generated":true,"id":"$Tool:101231773844232272.stackDecisionsWithAlternatives({\"first\":2}).edges.1","typename":"StackDecisionEdge"}],"__typename":"StackDecisionConnection"},"$Tool:101231774544144572.alternativeTools({\"first\":8}).edges.1":{"node":{"type":"id","generated":false,"id":"Tool:101231773844232272","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231773512118320":{"id":"101231773512118320","path":"/xamarin","slug":"xamarin","title":"Create iOS, Android and Mac apps in C#","votes":785,"followingTool":false,"followersCount":1525,"stacks":1307,"githubForksCount":null,"imageUrl":"https://img.stackshare.io/service/211/RDXWoY7W.png","thumbRetinaUrl":"https://img.stackshare.io/service/211/thumb_retina_RDXWoY7W.png","name":"Xamarin","description":"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.","contactEnabled":false,"contactButtonText":"Couchbase DBaaS: Store in JSON, access with SQL","contactButtonSponsorId":null,"contactFlow":{"type":"json","json":{"links":[{"url":"https://www.couchbase.com/products/capella/get-started?utm_source=stackshare&utm_medium=display","type":"website"}],"steps":["direct_link"]}},"pros":{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros","typename":"ReasonConnection"},"cons":{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons","typename":"ReasonConnection"},"verified":false,"canonicalUrl":"/xamarin","fans":1873,"following":false,"followContext":null,"__typename":"Tool","stackDecisionsWithAlternatives({\"first\":2})":{"type":"id","generated":true,"id":"$Tool:101231773512118320.stackDecisionsWithAlternatives({\"first\":2})","typename":"StackDecisionConnection"}},"Reason:101978468710890142":{"id":"101978468710890142","upvoted":false,"upvotesCount":121,"text":"Power of c# on mobile devices","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.0":{"node":{"type":"id","generated":false,"id":"Reason:101978468710890142","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468951137422":{"id":"101978468951137422","upvoted":false,"upvotesCount":81,"text":"Native performance","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.1":{"node":{"type":"id","generated":false,"id":"Reason:101978468951137422","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468941155880":{"id":"101978468941155880","upvoted":false,"upvotesCount":79,"text":"Native apps with native ui controls","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.2":{"node":{"type":"id","generated":false,"id":"Reason:101978468941155880","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468941706250":{"id":"101978468941706250","upvoted":false,"upvotesCount":73,"text":"No javascript - truely compiled code","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.3":{"node":{"type":"id","generated":false,"id":"Reason:101978468941706250","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468941266899":{"id":"101978468941266899","upvoted":false,"upvotesCount":67,"text":"Sharing more than 90% of code over all platforms","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.4":{"node":{"type":"id","generated":false,"id":"Reason:101978468941266899","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468434748044":{"id":"101978468434748044","upvoted":false,"upvotesCount":45,"text":"Ability to leverage visual studio","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.5":{"node":{"type":"id","generated":false,"id":"Reason:101978468434748044","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468941430571":{"id":"101978468941430571","upvoted":false,"upvotesCount":44,"text":"Mvvm pattern","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.6":{"node":{"type":"id","generated":false,"id":"Reason:101978468941430571","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468941607283":{"id":"101978468941607283","upvoted":false,"upvotesCount":44,"text":"Many great c# libraries ","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.7":{"node":{"type":"id","generated":false,"id":"Reason:101978468941607283","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468711265246":{"id":"101978468711265246","upvoted":false,"upvotesCount":36,"text":"Amazing support","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.8":{"node":{"type":"id","generated":false,"id":"Reason:101978468711265246","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468866039008":{"id":"101978468866039008","upvoted":false,"upvotesCount":34,"text":"Powerful platform for .net developers","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.9":{"node":{"type":"id","generated":false,"id":"Reason:101978468866039008","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469001941914":{"id":"101978469001941914","upvoted":false,"upvotesCount":19,"text":"GUI Native look and Feel","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.10":{"node":{"type":"id","generated":false,"id":"Reason:101978469001941914","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468942916432":{"id":"101978468942916432","upvoted":false,"upvotesCount":16,"text":"Nuget package manager","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.11":{"node":{"type":"id","generated":false,"id":"Reason:101978468942916432","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469277929799":{"id":"101978469277929799","upvoted":false,"upvotesCount":12,"text":"Free","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.12":{"node":{"type":"id","generated":false,"id":"Reason:101978469277929799","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469221407828":{"id":"101978469221407828","upvoted":false,"upvotesCount":9,"text":"Backed by Microsoft ","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.13":{"node":{"type":"id","generated":false,"id":"Reason:101978469221407828","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468951397770":{"id":"101978468951397770","upvoted":false,"upvotesCount":9,"text":"Enables code reuse on server","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.14":{"node":{"type":"id","generated":false,"id":"Reason:101978468951397770","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469001868764":{"id":"101978469001868764","upvoted":false,"upvotesCount":8,"text":"Faster Development","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.15":{"node":{"type":"id","generated":false,"id":"Reason:101978469001868764","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469167714851":{"id":"101978469167714851","upvoted":false,"upvotesCount":7,"text":"Use of third-party .NET libraries","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.16":{"node":{"type":"id","generated":false,"id":"Reason:101978469167714851","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469281746432":{"id":"101978469281746432","upvoted":false,"upvotesCount":7,"text":"It's free since Apr 2016","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.17":{"node":{"type":"id","generated":false,"id":"Reason:101978469281746432","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469374648232":{"id":"101978469374648232","upvoted":false,"upvotesCount":7,"text":"Best performance than other cross-platform","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.18":{"node":{"type":"id","generated":false,"id":"Reason:101978469374648232","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469002081081":{"id":"101978469002081081","upvoted":false,"upvotesCount":7,"text":"Easy Debug and Trace","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.19":{"node":{"type":"id","generated":false,"id":"Reason:101978469002081081","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469297351256":{"id":"101978469297351256","upvoted":false,"upvotesCount":7,"text":"Open Source","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.20":{"node":{"type":"id","generated":false,"id":"Reason:101978469297351256","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469489809890":{"id":"101978469489809890","upvoted":false,"upvotesCount":6,"text":"Mac IDE (Xamarin Studio)","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.21":{"node":{"type":"id","generated":false,"id":"Reason:101978469489809890","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469175927028":{"id":"101978469175927028","upvoted":false,"upvotesCount":6,"text":"Xamarin.forms is the best, it's amazing","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.22":{"node":{"type":"id","generated":false,"id":"Reason:101978469175927028","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469201721818":{"id":"101978469201721818","upvoted":false,"upvotesCount":5,"text":"That just work for every scenario ","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.23":{"node":{"type":"id","generated":false,"id":"Reason:101978469201721818","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469368827222":{"id":"101978469368827222","upvoted":false,"upvotesCount":5,"text":"C# mult paradigm language","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.24":{"node":{"type":"id","generated":false,"id":"Reason:101978469368827222","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469564467053":{"id":"101978469564467053","upvoted":false,"upvotesCount":5,"text":"Power of C#, no javascript, visual studio","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.25":{"node":{"type":"id","generated":false,"id":"Reason:101978469564467053","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470084028444":{"id":"101978470084028444","upvoted":false,"upvotesCount":4,"text":"Great docs","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.26":{"node":{"type":"id","generated":false,"id":"Reason:101978470084028444","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469167262386":{"id":"101978469167262386","upvoted":false,"upvotesCount":4,"text":"Compatible to develop Hybrid apps","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.27":{"node":{"type":"id","generated":false,"id":"Reason:101978469167262386","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469691396724":{"id":"101978469691396724","upvoted":false,"upvotesCount":4,"text":"Microsoft stack","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.28":{"node":{"type":"id","generated":false,"id":"Reason:101978469691396724","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469492143749":{"id":"101978469492143749","upvoted":false,"upvotesCount":4,"text":"Microsoft backed","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.29":{"node":{"type":"id","generated":false,"id":"Reason:101978469492143749","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469390371013":{"id":"101978469390371013","upvoted":false,"upvotesCount":3,"text":"Well Designed","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.30":{"node":{"type":"id","generated":false,"id":"Reason:101978469390371013","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469237566199":{"id":"101978469237566199","upvoted":false,"upvotesCount":3,"text":"Small learning curve for Mobile developers","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.31":{"node":{"type":"id","generated":false,"id":"Reason:101978469237566199","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103493917702569427":{"id":"103493917702569427","upvoted":false,"upvotesCount":2,"text":"Ionic","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.32":{"node":{"type":"id","generated":false,"id":"Reason:103493917702569427","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:104801051167486649":{"id":"104801051167486649","upvoted":false,"upvotesCount":2,"text":"Ability to leverage legacy C and C++","__typename":"Reason"},"$Tool:101231773512118320.pros.edges.33":{"node":{"type":"id","generated":false,"id":"Reason:104801051167486649","typename":"Reason"},"__typename":"ReasonEdge"},"$Tool:101231773512118320.pros":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.0","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.1","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.2","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.3","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.4","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.5","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.6","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.7","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.8","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.9","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.10","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.11","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.12","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.13","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.14","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.15","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.16","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.17","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.18","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.19","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.20","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.21","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.22","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.23","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.24","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.25","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.26","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.27","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.28","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.29","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.30","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.31","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.32","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.pros.edges.33","typename":"ReasonEdge"}],"__typename":"ReasonConnection"},"Reason:101978470085181197":{"id":"101978470085181197","upvoted":false,"upvotesCount":9,"text":"Build times","__typename":"Reason"},"$Tool:101231773512118320.cons.edges.0":{"node":{"type":"id","generated":false,"id":"Reason:101978470085181197","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470084525996":{"id":"101978470084525996","upvoted":false,"upvotesCount":5,"text":"Visual Studio","__typename":"Reason"},"$Tool:101231773512118320.cons.edges.1":{"node":{"type":"id","generated":false,"id":"Reason:101978470084525996","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:102995610801353756":{"id":"102995610801353756","upvoted":false,"upvotesCount":4,"text":"Price","__typename":"Reason"},"$Tool:101231773512118320.cons.edges.2":{"node":{"type":"id","generated":false,"id":"Reason:102995610801353756","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470186410614":{"id":"101978470186410614","upvoted":false,"upvotesCount":3,"text":"Complexity","__typename":"Reason"},"$Tool:101231773512118320.cons.edges.3":{"node":{"type":"id","generated":false,"id":"Reason:101978470186410614","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:102995616507385922":{"id":"102995616507385922","upvoted":false,"upvotesCount":3,"text":"Scalability ","__typename":"Reason"},"$Tool:101231773512118320.cons.edges.4":{"node":{"type":"id","generated":false,"id":"Reason:102995616507385922","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:102995615990597066":{"id":"102995615990597066","upvoted":false,"upvotesCount":2,"text":"Nuget","__typename":"Reason"},"$Tool:101231773512118320.cons.edges.5":{"node":{"type":"id","generated":false,"id":"Reason:102995615990597066","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:102995617288401735":{"id":"102995617288401735","upvoted":false,"upvotesCount":2,"text":"Maturity","__typename":"Reason"},"$Tool:101231773512118320.cons.edges.6":{"node":{"type":"id","generated":false,"id":"Reason:102995617288401735","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:102995613908000044":{"id":"102995613908000044","upvoted":false,"upvotesCount":2,"text":"Build Tools","__typename":"Reason"},"$Tool:101231773512118320.cons.edges.7":{"node":{"type":"id","generated":false,"id":"Reason:102995613908000044","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:102995614791902619":{"id":"102995614791902619","upvoted":false,"upvotesCount":2,"text":"Support","__typename":"Reason"},"$Tool:101231773512118320.cons.edges.8":{"node":{"type":"id","generated":false,"id":"Reason:102995614791902619","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:105067665551104450":{"id":"105067665551104450","upvoted":false,"upvotesCount":0,"text":"Maturidade","__typename":"Reason"},"$Tool:101231773512118320.cons.edges.9":{"node":{"type":"id","generated":false,"id":"Reason:105067665551104450","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:105067661960203150":{"id":"105067661960203150","upvoted":false,"upvotesCount":0,"text":"Performance","__typename":"Reason"},"$Tool:101231773512118320.cons.edges.10":{"node":{"type":"id","generated":false,"id":"Reason:105067661960203150","typename":"Reason"},"__typename":"ReasonEdge"},"$Tool:101231773512118320.cons":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons.edges.0","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons.edges.1","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons.edges.2","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons.edges.3","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons.edges.4","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons.edges.5","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons.edges.6","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons.edges.7","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons.edges.8","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons.edges.9","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.cons.edges.10","typename":"ReasonEdge"}],"__typename":"ReasonConnection"},"User:102693945863891064":{"id":"102693945863891064","username":"GregInTheNorth","title":"Indie, Solo, Developer","companyName":"","imageUrl":"https://img.stackshare.io/user/306238/default_ce283bb281935e69b5e2e7053a2cb55aec9d2102.jpeg","thumbUrl":"https://img.stackshare.io/user/306238/thumb_ce283bb281935e69b5e2e7053a2cb55aec9d2102.jpeg","displayName":"Greg Neumann","__typename":"User"},"StackDecision:102696009400211093":{"user":{"type":"id","generated":false,"id":"User:102693945863891064","typename":"User"},"company":null,"link":null,"publicId":"102696009400211093","publishedAt":"2019-08-28T18:25:42Z","id":"102696009400211093","htmlContent":"

      Finding the most effective dev stack for a solo developer. \nOver the past year, I've been looking at many tech stacks that would be 'best' for me, as a solo, indie, developer to deliver a desktop app (Windows & Mac) plus mobile - iOS mainly. Initially, Xamarin started to stand-out. Using .NET Core as the run-time, Xamarin as the native API provider and Xamarin Forms for the UI seemed to solve all issues. But, the cracks soon started to appear. Xamarin Forms is mobile only; the Windows incarnation is different. There is no Mac UI solution (you have to code it natively in Mac OS Storyboard. I was also worried how Xamarin Forms , if I was to use it, was going to cope, in future, with Apple's new SwiftUI and Google's new Fuchsia.\n\n

      This plethora of techs for the UI-layer made me reach for the safer waters of using Web-techs for the UI. Lovely! Consistency everywhere (well, mostly). But that consistency evaporates when platform issues are addressed. There are so many web frameworks!\n\n

      But, I made a simple decision. It's just me...I am clever, but there is no army of coders here. And I have big plans for a business app. How could just 1 developer go-on to deploy a decent app to Windows, iPhone, iPad & Mac OS? I remembered earlier days when I've used Microsoft's ASP.NET to scaffold - generate - loads of Code for a web-app that I needed for several charities that I worked with. \nWhat 'generators' exist that do a lot of the platform-specific rubbish, allow the necessary customisation of such platform integration and provide a decent UI?\n\n

      I've placed my colours to the Quasar Framework mast. Oh dear, that means Electron desktop apps doesn't it? Well, Ive had enough of loads of Developers saying that \"the menus won't look native\" or \"it uses too much RAM\" and so on. I've been using non-native UI-wrapped apps for ages - the date picker in Outlook on iOS is way better than the native date-picker and I'd been using it for years without getting hot under the collar about it. Developers do get so hung-up on things that busy Users hardly notice; don't you think?. As to the RAM usage issue; that's a bit true. But Users only really notice when an app uses so much RAM that the machine starts to page-out. Electron contributes towards that horizon but does not cause it. My Users will be business-users after all. Somewhat decent machines.\n\n

      Looking forward to all that lovely Vue.js around my TypeScript and all those really, really, b e a u t I f u l UI controls of Quasar Framework . Still not sure that 1 dev can deliver all that... but I'm up for trying...","viewCount":1632727,"upvotesCount":8,"services":[{"type":"id","generated":false,"id":"Tool:101231773512118320","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776647396130","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774436802643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776831508362","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:102339069088396450","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774678060123","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775222204089","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774098455524","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"Tool:101231774436802643":{"id":"101231774436802643","name":"Xamarin Forms","slug":"xamarin-forms","title":" A complete cross-platform UI toolkit for .NET developers","verified":false,"imageUrl":"https://img.stackshare.io/service/2459/RDXWoY7W_400x400.png","canonicalUrl":"/xamarin-forms","path":"/xamarin-forms","votes":5,"fans":358,"stacks":346,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776831508362":{"id":"101231776831508362","name":"ASP.NET","slug":"asp-net","title":"An open source web framework for building modern web apps and services with .NET","verified":false,"imageUrl":"https://img.stackshare.io/service/6755/2c45151a4a11d3a3c8e71bb34dd069d6_400x400.png","canonicalUrl":"/asp-net","path":"/asp-net","votes":40,"fans":14328,"stacks":28515,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774678060123":{"id":"101231774678060123","name":"Electron","slug":"electron","title":"Build cross platform desktop apps with JavaScript, HTML, and CSS","verified":false,"imageUrl":"https://img.stackshare.io/service/2946/default_18a71b65e69d7aef5f218ae07f64eb6e1594c444.jpg","canonicalUrl":"/electron","path":"/electron","votes":148,"fans":12259,"stacks":11316,"following":false,"followContext":null,"__typename":"Tool","followingTool":false,"followersCount":9912,"githubForksCount":null,"thumbRetinaUrl":"https://img.stackshare.io/service/2946/thumb_retina_18a71b65e69d7aef5f218ae07f64eb6e1594c444.jpg","description":"With Electron, creating a desktop application for your company or idea is easy. Initially developed for GitHub's Atom editor, Electron has since been used to create applications by companies like Microsoft, Facebook, Slack, and Docker. The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on io.js and Chromium and is used in the Atom editor.","contactEnabled":false,"contactButtonText":"Electron Error and Performance Monitoring with Sentry","contactButtonSponsorId":"110427692161752798","contactFlow":{"type":"json","json":{"links":[{"url":"https://sentry.io/for/electron/?utm_source=stackshare&utm_medium=paid-community&utm_campaign=electron&utm_content=cta-ad","type":"website"}],"steps":["direct_link"]}},"pros":{"type":"id","generated":true,"id":"$Tool:101231774678060123.pros","typename":"ReasonConnection"},"cons":{"type":"id","generated":true,"id":"$Tool:101231774678060123.cons","typename":"ReasonConnection"},"stackDecisionsWithAlternatives({\"first\":2})":{"type":"id","generated":true,"id":"$Tool:101231774678060123.stackDecisionsWithAlternatives({\"first\":2})","typename":"StackDecisionConnection"}},"$Tool:101231773512118320.stackDecisionsWithAlternatives({\"first\":2}).edges.0":{"node":{"type":"id","generated":false,"id":"StackDecision:102696009400211093","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"User:109148414448179843":{"id":"109148414448179843","username":"theviz02","title":"Web Developer","companyName":"Ecombooks","imageUrl":"https://img.stackshare.io/user/1376285/default_6c6e218d5b7b10a82415689b3228813c7a0c28a7.jpeg","thumbUrl":"https://img.stackshare.io/user/1376285/thumb_6c6e218d5b7b10a82415689b3228813c7a0c28a7.jpeg","displayName":"Bhupendra Madhu","__typename":"User"},"StackDecision:109159439921338018":{"user":{"type":"id","generated":false,"id":"User:109148414448179843","typename":"User"},"company":null,"link":null,"publicId":"109159439921338018","publishedAt":"2022-10-13T06:01:07Z","id":"109159439921338018","htmlContent":"

      I want to learn cross-platform application frameworks like React Native, Flutter, Xamarin, or Ionic, and I'm a web developer. I can learn other programming languages as well. But I'm confused about what to learn, which framework is best, and which framework will last long as the application grows further into complexity. ","viewCount":711313,"upvotesCount":8,"services":[{"type":"id","generated":false,"id":"Tool:101231773788504314","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773512118320","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777036008618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774544144572","typename":"Tool"}],"topics":[],"__typename":"StackDecision"},"Tool:101231773788504314":{"id":"101231773788504314","name":"Ionic","slug":"ionic","title":"A beautiful front-end framework for developing cross-platform apps with web technologies like Angular and React.","verified":true,"imageUrl":"https://img.stackshare.io/service/876/bYMCvtHD_400x400.jpg","canonicalUrl":"/ionic","path":"/ionic","votes":1755,"fans":10456,"stacks":9460,"following":false,"followContext":null,"__typename":"Tool","followingTool":false,"followersCount":8533,"githubForksCount":null,"thumbRetinaUrl":"https://img.stackshare.io/service/876/thumb_retina_bYMCvtHD_400x400.jpg","description":"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.","contactEnabled":false,"contactButtonText":"Couchbase DBaaS: Store in JSON, access with SQL","contactButtonSponsorId":null,"contactFlow":{"type":"json","json":{"links":[{"url":"https://www.couchbase.com/products/capella/get-started?utm_source=stackshare&utm_medium=display","type":"website"}],"steps":["direct_link"]}},"pros":{"type":"id","generated":true,"id":"$Tool:101231773788504314.pros","typename":"ReasonConnection"},"cons":{"type":"id","generated":true,"id":"$Tool:101231773788504314.cons","typename":"ReasonConnection"},"stackDecisionsWithAlternatives({\"first\":2})":{"type":"id","generated":true,"id":"$Tool:101231773788504314.stackDecisionsWithAlternatives({\"first\":2})","typename":"StackDecisionConnection"}},"$Tool:101231773512118320.stackDecisionsWithAlternatives({\"first\":2}).edges.1":{"node":{"type":"id","generated":false,"id":"StackDecision:109159439921338018","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"$Tool:101231773512118320.stackDecisionsWithAlternatives({\"first\":2})":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231773512118320.stackDecisionsWithAlternatives({\"first\":2}).edges.0","typename":"StackDecisionEdge"},{"type":"id","generated":true,"id":"$Tool:101231773512118320.stackDecisionsWithAlternatives({\"first\":2}).edges.1","typename":"StackDecisionEdge"}],"__typename":"StackDecisionConnection"},"$Tool:101231774544144572.alternativeTools({\"first\":8}).edges.2":{"node":{"type":"id","generated":false,"id":"Tool:101231773512118320","typename":"Tool"},"__typename":"ToolEdge"},"Tool:101231774501097376":{"id":"101231774501097376","path":"/nativescript","slug":"nativescript","title":"Build truly native apps with JavaScript","votes":516,"followingTool":false,"followersCount":1064,"stacks":539,"githubForksCount":1641,"imageUrl":"https://img.stackshare.io/service/2605/_fBe-iYT.jpeg","thumbRetinaUrl":"https://img.stackshare.io/service/2605/thumb_retina__fBe-iYT.jpeg","name":"NativeScript","description":"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.","contactEnabled":false,"contactButtonText":"Get App localization on autopilot with Localazy","contactButtonSponsorId":null,"contactFlow":{"type":"json","json":{"links":[{"url":"https://localazy.com/?utm_source=StackShare&utm_medium=Listings&utm_campaign=cpc&utm_term=tech_nativescript","type":"website"}],"steps":["direct_link"]}},"pros":{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros","typename":"ReasonConnection"},"cons":{"type":"id","generated":true,"id":"$Tool:101231774501097376.cons","typename":"ReasonConnection"},"verified":false,"canonicalUrl":"/nativescript","fans":1247,"following":false,"followContext":null,"__typename":"Tool","stackDecisionsWithAlternatives({\"first\":2})":{"type":"id","generated":true,"id":"$Tool:101231774501097376.stackDecisionsWithAlternatives({\"first\":2})","typename":"StackDecisionConnection"}},"Reason:101978468813035861":{"id":"101978468813035861","upvoted":false,"upvotesCount":75,"text":"Access to the entire native api","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.0":{"node":{"type":"id","generated":false,"id":"Reason:101978468813035861","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468810424811":{"id":"101978468810424811","upvoted":false,"upvotesCount":47,"text":"Support for native ios and android libraries","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.1":{"node":{"type":"id","generated":false,"id":"Reason:101978468810424811","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468810776116":{"id":"101978468810776116","upvoted":false,"upvotesCount":46,"text":"Support for javascript libraries","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.2":{"node":{"type":"id","generated":false,"id":"Reason:101978468810776116","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468810493493":{"id":"101978468810493493","upvoted":false,"upvotesCount":46,"text":"Angular 2.0 support","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.3":{"node":{"type":"id","generated":false,"id":"Reason:101978468810493493","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468810227709":{"id":"101978468810227709","upvoted":false,"upvotesCount":44,"text":"Native ux and performance","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.4":{"node":{"type":"id","generated":false,"id":"Reason:101978468810227709","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468810658996":{"id":"101978468810658996","upvoted":false,"upvotesCount":37,"text":"Typescript support","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.5":{"node":{"type":"id","generated":false,"id":"Reason:101978468810658996","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468808888608":{"id":"101978468808888608","upvoted":false,"upvotesCount":35,"text":"Backed up by google and telerik","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.6":{"node":{"type":"id","generated":false,"id":"Reason:101978468808888608","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468810923001":{"id":"101978468810923001","upvoted":false,"upvotesCount":29,"text":"Css support","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.7":{"node":{"type":"id","generated":false,"id":"Reason:101978468810923001","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468813382372":{"id":"101978468813382372","upvoted":false,"upvotesCount":27,"text":"Cross-platform declarative ui and code","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.8":{"node":{"type":"id","generated":false,"id":"Reason:101978468813382372","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468811371632":{"id":"101978468811371632","upvoted":false,"upvotesCount":25,"text":"Fully open source under apache 2.0 license","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.9":{"node":{"type":"id","generated":false,"id":"Reason:101978468811371632","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469798459503":{"id":"101978469798459503","upvoted":false,"upvotesCount":11,"text":"Vuejs support ","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.10":{"node":{"type":"id","generated":false,"id":"Reason:101978469798459503","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468811836108":{"id":"101978468811836108","upvoted":false,"upvotesCount":9,"text":"60fps performance","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.11":{"node":{"type":"id","generated":false,"id":"Reason:101978468811836108","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468811515851":{"id":"101978468811515851","upvoted":false,"upvotesCount":6,"text":"Powerful data visualization with native UI","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.12":{"node":{"type":"id","generated":false,"id":"Reason:101978468811515851","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469221572067":{"id":"101978469221572067","upvoted":false,"upvotesCount":5,"text":"VS Code integration","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.13":{"node":{"type":"id","generated":false,"id":"Reason:101978469221572067","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469170196830":{"id":"101978469170196830","upvoted":false,"upvotesCount":5,"text":"Angular, typescript and javascript support","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.14":{"node":{"type":"id","generated":false,"id":"Reason:101978469170196830","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468811303882":{"id":"101978468811303882","upvoted":false,"upvotesCount":5,"text":"No need for Mac to build iOS apps in Telerik Platform","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.15":{"node":{"type":"id","generated":false,"id":"Reason:101978468811303882","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468813862476":{"id":"101978468813862476","upvoted":false,"upvotesCount":4,"text":"Extended CLI support","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.16":{"node":{"type":"id","generated":false,"id":"Reason:101978468813862476","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468811173331":{"id":"101978468811173331","upvoted":false,"upvotesCount":4,"text":"Cloud builds as part of Telerik PLatform","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.17":{"node":{"type":"id","generated":false,"id":"Reason:101978468811173331","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469672974648":{"id":"101978469672974648","upvoted":false,"upvotesCount":4,"text":"Truly Object-Oriented with Typescript ","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.18":{"node":{"type":"id","generated":false,"id":"Reason:101978469672974648","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468813992130":{"id":"101978468813992130","upvoted":false,"upvotesCount":4,"text":"On-device debugging","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.19":{"node":{"type":"id","generated":false,"id":"Reason:101978468813992130","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468814353228":{"id":"101978468814353228","upvoted":false,"upvotesCount":4,"text":"Extensibility","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.20":{"node":{"type":"id","generated":false,"id":"Reason:101978468814353228","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469964042467":{"id":"101978469964042467","upvoted":false,"upvotesCount":3,"text":"Access to entire native api","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.21":{"node":{"type":"id","generated":false,"id":"Reason:101978469964042467","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469308518351":{"id":"101978469308518351","upvoted":false,"upvotesCount":3,"text":"Live reload","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.22":{"node":{"type":"id","generated":false,"id":"Reason:101978469308518351","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469672767114":{"id":"101978469672767114","upvoted":false,"upvotesCount":3,"text":"Easiest of all other frameworks","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.23":{"node":{"type":"id","generated":false,"id":"Reason:101978469672767114","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469870804640":{"id":"101978469870804640","upvoted":false,"upvotesCount":3,"text":"Easy to learn","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.24":{"node":{"type":"id","generated":false,"id":"Reason:101978469870804640","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469306796509":{"id":"101978469306796509","upvoted":false,"upvotesCount":3,"text":"Backed by google","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.25":{"node":{"type":"id","generated":false,"id":"Reason:101978469306796509","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468812477410":{"id":"101978468812477410","upvoted":false,"upvotesCount":3,"text":"0 day support for new OS updates","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.26":{"node":{"type":"id","generated":false,"id":"Reason:101978468812477410","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468814094420":{"id":"101978468814094420","upvoted":false,"upvotesCount":3,"text":"Publishing modules to NPM","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.27":{"node":{"type":"id","generated":false,"id":"Reason:101978468814094420","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469911067864":{"id":"101978469911067864","upvoted":false,"upvotesCount":2,"text":"Vue.js support out of the box","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.28":{"node":{"type":"id","generated":false,"id":"Reason:101978469911067864","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103786690460389338":{"id":"103786690460389338","upvoted":false,"upvotesCount":2,"text":"VueJS support","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.29":{"node":{"type":"id","generated":false,"id":"Reason:103786690460389338","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103834474716153515":{"id":"103834474716153515","upvoted":false,"upvotesCount":2,"text":"Svelte support","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.30":{"node":{"type":"id","generated":false,"id":"Reason:103834474716153515","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468811017689":{"id":"101978468811017689","upvoted":false,"upvotesCount":2,"text":"Powerfull mobile services as part of Telerik Platform","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.31":{"node":{"type":"id","generated":false,"id":"Reason:101978468811017689","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469862680086":{"id":"101978469862680086","upvoted":false,"upvotesCount":2,"text":"Native ui with angular","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.32":{"node":{"type":"id","generated":false,"id":"Reason:101978469862680086","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470098987633":{"id":"101978470098987633","upvoted":false,"upvotesCount":2,"text":"Vue support","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.33":{"node":{"type":"id","generated":false,"id":"Reason:101978470098987633","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103786762484666788":{"id":"103786762484666788","upvoted":false,"upvotesCount":1,"text":"Playground","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.34":{"node":{"type":"id","generated":false,"id":"Reason:103786762484666788","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103794088821234435":{"id":"103794088821234435","upvoted":false,"upvotesCount":1,"text":"Hot Reload","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.35":{"node":{"type":"id","generated":false,"id":"Reason:103794088821234435","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:104008205676306048":{"id":"104008205676306048","upvoted":false,"upvotesCount":1,"text":"HMR via webpack","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.36":{"node":{"type":"id","generated":false,"id":"Reason:104008205676306048","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468812199493":{"id":"101978468812199493","upvoted":false,"upvotesCount":1,"text":"Very small app size","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.37":{"node":{"type":"id","generated":false,"id":"Reason:101978468812199493","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:103354077424530131":{"id":"103354077424530131","upvoted":false,"upvotesCount":1,"text":"Write once, use anywhere","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.38":{"node":{"type":"id","generated":false,"id":"Reason:103354077424530131","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469870590981":{"id":"101978469870590981","upvoted":false,"upvotesCount":1,"text":"Easy to use, support for almost all npm packages","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.39":{"node":{"type":"id","generated":false,"id":"Reason:101978469870590981","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468810343332":{"id":"101978468810343332","upvoted":false,"upvotesCount":1,"text":"Rich ecosystem","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.40":{"node":{"type":"id","generated":false,"id":"Reason:101978468810343332","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469959672264":{"id":"101978469959672264","upvoted":false,"upvotesCount":1,"text":"Compile to Apple/Google Stores via CloudCompiler","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.41":{"node":{"type":"id","generated":false,"id":"Reason:101978469959672264","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978469977568028":{"id":"101978469977568028","upvoted":false,"upvotesCount":1,"text":"Has CSS ;-)","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.42":{"node":{"type":"id","generated":false,"id":"Reason:101978469977568028","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978470035495314":{"id":"101978470035495314","upvoted":false,"upvotesCount":1,"text":"It works with Angular","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.43":{"node":{"type":"id","generated":false,"id":"Reason:101978470035495314","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:101978468813559181":{"id":"101978468813559181","upvoted":false,"upvotesCount":1,"text":"Code reuse with your website","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.44":{"node":{"type":"id","generated":false,"id":"Reason:101978468813559181","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:105980199902366585":{"id":"105980199902366585","upvoted":false,"upvotesCount":0,"text":"Dart","__typename":"Reason"},"$Tool:101231774501097376.pros.edges.45":{"node":{"type":"id","generated":false,"id":"Reason:105980199902366585","typename":"Reason"},"__typename":"ReasonEdge"},"$Tool:101231774501097376.pros":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.0","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.1","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.2","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.3","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.4","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.5","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.6","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.7","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.8","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.9","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.10","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.11","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.12","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.13","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.14","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.15","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.16","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.17","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.18","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.19","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.20","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.21","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.22","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.23","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.24","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.25","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.26","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.27","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.28","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.29","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.30","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.31","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.32","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.33","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.34","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.35","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.36","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.37","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.38","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.39","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.40","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.41","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.42","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.43","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.44","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.pros.edges.45","typename":"ReasonEdge"}],"__typename":"ReasonConnection"},"Reason:104008191049967873":{"id":"104008191049967873","upvoted":false,"upvotesCount":5,"text":"Lack of promotion","__typename":"Reason"},"$Tool:101231774501097376.cons.edges.0":{"node":{"type":"id","generated":false,"id":"Reason:104008191049967873","typename":"Reason"},"__typename":"ReasonEdge"},"Reason:104088760230206653":{"id":"104088760230206653","upvoted":false,"upvotesCount":1,"text":"Slower Performance compared to competitors","__typename":"Reason"},"$Tool:101231774501097376.cons.edges.1":{"node":{"type":"id","generated":false,"id":"Reason:104088760230206653","typename":"Reason"},"__typename":"ReasonEdge"},"$Tool:101231774501097376.cons":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231774501097376.cons.edges.0","typename":"ReasonEdge"},{"type":"id","generated":true,"id":"$Tool:101231774501097376.cons.edges.1","typename":"ReasonEdge"}],"__typename":"ReasonConnection"},"User:109640187897003286":{"id":"109640187897003286","username":"lucasprieur","title":"","companyName":"","imageUrl":"https://img.stackshare.io/user/1428832/default_5fa0de7964dba3de656affb816b011dbacfd1826.png","thumbUrl":"https://img.stackshare.io/user/1428832/thumb_5fa0de7964dba3de656affb816b011dbacfd1826.png","displayName":"Lucas P","__typename":"User"},"StackDecision:109640381003662400":{"user":{"type":"id","generated":false,"id":"User:109640187897003286","typename":"User"},"company":null,"link":null,"publicId":"109640381003662400","publishedAt":"2023-01-06T04:30:46Z","id":"109640381003662400","htmlContent":"

      Hello,\n\n

      We're just brainstorming for the moment and we have a few questions.\n\n

      We have an idea for an app that we want to develop, here are the prerequisites:\n\n

      1) cross-platform (iOS, Android, and website);\n\n

      2) as easy to maintain as possible / well documented / widely used;\n\n

      3) Visual Studio Code and Copilot compatible;\n\n

      4) Text to speech;\n\n

      5) Speech recognition;\n\n

      6) Running in background (screen off with TTS and speech recognition);\n\n

      7) could be using TypeScript;\n\n

      8) Monetized through ad and in-App payment for premium version;\n\n

      9) Display on lock screen (Android only I guess)\n\n

      So what would you recommend?\n\n

      I've been trying to review the options available, and I've considered:\n\n