[{"data":1,"prerenderedAt":388},["ShallowReactive",2],{"article-local_tunnel":3},{"article":4,"tags":102,"previous":130,"next":290},{"id":5,"title":6,"author":7,"body":8,"createdAt":89,"description":90,"extension":91,"img":92,"meta":93,"navigation":94,"path":95,"seo":96,"stem":97,"tags":98,"updatedAt":89,"__hash__":101},"articles\u002Farticles\u002Flocal_tunnel.md","Unleash your localhost on the world!","[object Object]",{"type":9,"value":10,"toc":86},"minimark",[11,23,26,42,48,54,66,71,79],[12,13,14,15],"p",{},"Expose your local development web service to the world with\n",[16,17,22],"a",{"href":18,"target":19,"rel":20},"https:\u002F\u002Ftheboroer.github.io\u002Flocaltunnel-www\u002F","_blank",[21],"noopener","Localtunnel!",[12,24,25],{},"No need to fuss with DNS and firewall settings",[27,28,29,33,36,39],"ul",{},[30,31,32],"li",{},"Simply install Localtunnel (which requires NodeJS) globally and use the command line interface to request a tunnel to your local server.",[30,34,35],{},"You'll receive a unique, publicly accessible URL that will proxy all requests to your locally running webserver.",[30,37,38],{},"Just share the URL with anyone you want to have access, and as long as your local instance of Localtunnel remains active, all requests will be routed to your local service.",[30,40,41],{},"Quick and easy!",[12,43,44],{},[45,46,47],"strong",{},"Install",[12,49,50],{},[51,52,53],"code",{},"npm install -g localtunnel",[12,55,56,59,60,65],{},[45,57,58],{},"Start a webserver on some local port"," (eg ",[16,61,62],{"href":62,"rel":63},"http:\u002F\u002Flocalhost:8000",[64],"nofollow",") and use the command line interface to request a tunnel to your local server:",[12,67,68],{},[51,69,70],{},"lt --port 8000",[12,72,73,74,78],{},"As long as your local instance of lt remains active, you will be given a unique URL, such as ",[16,75,76],{"href":76,"rel":77},"https:\u002F\u002Fflkajsfljas.loca.lt",[64],",\nwhich can be shared with anyone. All requests made to this URL will be directed to your local service at the specified port.",[12,80,81],{},[82,83],"img",{"alt":84,"src":85},"","\u002Farticles\u002Fimages\u002Flocaltunnel_2.png",{"title":84,"searchDepth":87,"depth":87,"links":88},2,[],"2022-12-29","It is necessary to share my localhost web application with the world in order for it to be accessed from other devices and individuals.","md","\u002Farticles\u002Fimages\u002Flocaltunnel.png",{},true,"\u002Farticles\u002Flocal_tunnel",{"title":6,"description":90},"articles\u002Flocal_tunnel",[99,100],"node","npm","i2TIUL53Z4P3kfhtPeZT9twwmIdeoCYgSTI3DaIf1OE",[103,117],{"id":104,"title":105,"body":106,"description":110,"extension":91,"img":111,"meta":112,"name":99,"navigation":94,"path":113,"seo":114,"stem":115,"__hash__":116},"tags\u002Ftags\u002Fnode.md","Node",{"type":9,"value":107,"toc":108},[],{"title":84,"searchDepth":87,"depth":87,"links":109},[],"Node allows developers to write JavaScript code that runs directly in a computer process itself instead of in a browser. Node can, therefore, be used to write server-side applications with access to the operating system, file system, and everything else required to build fully-functional applications.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1598313183973-4effcded8d5e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=675&q=80",{},"\u002Ftags\u002Fnode",{"description":110},"tags\u002Fnode","kBZEUEYUGIoLCPM88yi6RG1QD8TIc4JbSwgSFvC1_Gc",{"id":118,"title":119,"body":120,"description":124,"extension":91,"img":111,"meta":125,"name":100,"navigation":94,"path":126,"seo":127,"stem":128,"__hash__":129},"tags\u002Ftags\u002Fnpm.md","Npm",{"type":9,"value":121,"toc":122},[],{"title":84,"searchDepth":87,"depth":87,"links":123},[],"npm is two things... first and foremost, it is an online repository for the publishing of open-source Node.js projects; second, it is a command-line utility for interacting with said repository that aids in package installation, version management, and dependency management.",{},"\u002Ftags\u002Fnpm",{"description":124},"tags\u002Fnpm","lIC-Oaulb8LKEOVAMw2ea29_Ir9k8IMaGOx8do5mHaI",{"id":131,"title":132,"author":7,"body":133,"createdAt":280,"description":281,"extension":91,"img":282,"meta":283,"navigation":94,"path":284,"seo":285,"stem":286,"tags":287,"updatedAt":280,"__hash__":289},"articles\u002Farticles\u002F2023_flutter-update.md","2023 In Flutter",{"type":9,"value":134,"toc":271},[135,140,143,148,151,154,158,161,193,197,200,232,235,239,242,245,268],[136,137,139],"h2",{"id":138},"flutter-a-rising-star-in-mobile-development","Flutter: A Rising Star in Mobile Development",[12,141,142],{},"If you are looking for a fast, productive, and flexible way to build beautiful mobile apps for iOS and Android, you might want to consider Flutter. Flutter is an open-source UI toolkit created by Google that enables developers to create native-looking apps from a single codebase. In this post, we will explore some of the benefits and features of Flutter, as well as some of the amazing examples of Flutter apps in the market.",[144,145,147],"h3",{"id":146},"what-is-flutter","What is Flutter?",[12,149,150],{},"Flutter is a relatively new framework that was introduced by Google in 2018. It is based on Dart, a language optimized for fast apps on any platform. Flutter uses a declarative approach to build UI components, which are called widgets. Widgets can be composed together to create complex layouts and animations. Widgets are also reactive, meaning they can update their state based on user input or data changes.",[12,152,153],{},"Flutter compiles its code to native machine code for iOS and Android, as well as JavaScript for web and desktop applications. This means that Flutter apps can run with high performance and smoothness on any device. Flutter also supports hot reload and hot restart features, which allow developers to see changes almost instantly without losing state or restarting the app.",[144,155,157],{"id":156},"why-choose-flutter","Why Choose Flutter?",[12,159,160],{},"Flutter offers many advantages over other mobile development frameworks, such as:",[27,162,163,169,175,181,187],{},[30,164,165,168],{},[45,166,167],{},"Cross-platform:"," You can target multiple platforms with one codebase, reducing development time and cost.",[30,170,171,174],{},[45,172,173],{},"Native-like:"," You can create apps that look and feel natural on any device, with full access to native features and services.",[30,176,177,180],{},[45,178,179],{},"Customizable:"," You have full control over every pixel of your app, with the ability to create custom widgets and themes.",[30,182,183,186],{},[45,184,185],{},"Productive:"," You can build and iterate quickly with hot reload and hot restart, as well as use powerful developer tools like Flutter DevTools and DartPad.",[30,188,189,192],{},[45,190,191],{},"Ecosystem:"," You can leverage a rich set of packages and plugins from pub.dev, as well as join a vibrant community of developers and supporters.",[144,194,196],{"id":195},"examples-of-flutter-apps","Examples of Flutter Apps",[12,198,199],{},"Flutter has been used by many well-known brands and startups around the world to create stunning mobile apps. Here are some examples:",[27,201,202,208,214,220,226],{},[30,203,204,207],{},[45,205,206],{},"Google Pay:"," Google's digital wallet app uses Flutter to provide a seamless payment experience across devices and regions.",[30,209,210,213],{},[45,211,212],{},"Reflectly:"," A personal journaling app that uses AI to help users improve their mental health. Reflectly uses Flutter to design unique digital experiences with animations and transitions.",[30,215,216,219],{},[45,217,218],{},"Nubank:"," A leading fintech company in Latin America that offers digital banking services. Nubank uses Flutter to scale its app with integrity and maintainability.",[30,221,222,225],{},[45,223,224],{},"Hamilton:"," The official app of the hit Broadway musical that allows fans to access exclusive content, trivia games, merchandise, and more. Hamilton uses Flutter to take the theater experience beyond the stage.",[30,227,228,231],{},[45,229,230],{},"Dream11:"," India's largest fantasy sports platform that supports over 50 million users. Dream11 uses Flutter to deliver high-performance gaming experiences with rich graphics.",[12,233,234],{},"These are just some of the many examples of how Flutter can help you create amazing mobile apps for any screen.",[144,236,238],{"id":237},"conclusion","Conclusion",[12,240,241],{},"Flutter is a rising star in mobile development that offers many benefits for developers and users alike. It is fast, productive, flexible, cross-platform,\nnative-like, and customizable. It also has a growing ecosystem of packages, plugins, and community support.",[12,243,244],{},"If you want to learn more about Flutter, you can visit flutter.dev to get started or check out some of the resources below:",[27,246,247,254,261],{},[30,248,249],{},[16,250,253],{"href":251,"rel":252},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0gA68g269NA",[64],"Learn how to build platform adaptive apps",[30,255,256],{},[16,257,260],{"href":258,"rel":259},"https:\u002F\u002Fflutter.dev\u002Fdocs\u002Fcookbook",[64],"Reference code examples and sample applications",[30,262,263],{},[16,264,267],{"href":265,"rel":266},"https:\u002F\u002Fflutter.dev\u002Froadmap",[64],"See where we’re going and how to be involved",[12,269,270],{},"We hope this post has given you some insights into why Flutter is popular in mobile development and how it can help you bring your app idea to life.",{"title":84,"searchDepth":87,"depth":87,"links":272},[273],{"id":138,"depth":87,"text":139,"children":274},[275,277,278,279],{"id":146,"depth":276,"text":147},3,{"id":156,"depth":276,"text":157},{"id":195,"depth":276,"text":196},{"id":237,"depth":276,"text":238},"2023-03-20","Current state of Google Flutter mobile application development","\u002Farticles\u002Fimages\u002Fflutter_small.png",{},"\u002Farticles\u002F2023_flutter-update",{"title":132,"description":281},"articles\u002F2023_flutter-update",[288],"flutter","5jAliBWInaB24ApOYvmWOjWXsOqTtg3yVPQOcU9lY50",{"id":291,"title":292,"author":7,"body":293,"createdAt":378,"description":379,"extension":91,"img":380,"meta":381,"navigation":94,"path":382,"seo":383,"stem":384,"tags":385,"updatedAt":378,"__hash__":387},"articles\u002Farticles\u002Fandroid-emulator-playstore.md","How to install Google Play - Android Emulator",{"type":9,"value":294,"toc":376},[295,298],[12,296,297],{},"Working more and more with Android Emulators I am finding not all images have Play Store installed.  The following are 3 easy steps that I have used to get Google Play Store installed and ready upon creation of new emulator.",[299,300,301,339,364],"ol",{},[30,302,303,304,307,310,313,315,316,318,319,321,322,324,325,327,328,330,331,333,336,338],{},"Create Virtual Device.  Here I am selecting Nexus 5 and setting some default parameters that have worked well for me.",[305,306],"br",{},[82,308],{"alt":84,"src":309},"\u002Farticles\u002Fimages\u002Fandroidemulator_playstore1.png",[82,311],{"alt":84,"src":312},"\u002Farticles\u002Fimages\u002Fandroidemulator_playstore2.png",[305,314],{},"Emulated Performance",[305,317],{},"\nGraphics: Hardware - GLES 2.0",[305,320],{},"RAM 4096",[305,323],{},"\nVM Heap 512",[305,326],{},"\nInternal Storage 16024",[305,329],{},"\nStudio Managed 4096",[305,332],{},[82,334],{"alt":84,"src":335},"\u002Farticles\u002Fimages\u002Fandroidemulator_playstore3.png",[305,337],{},"Finish",[30,340,341,344,345,347,350,351,353,355,357,358,360,363],{},[45,342,343],{},"BEFORE"," opening the image do the following.  Open the host directory on the file system.  For me this was C:\\Users\\{username}\\.android\\avd\\Pixel_5_API_30.avd and find the config.ini.  At this point there should be very few files in this directory.  OPEN config.ini",[305,346],{},[45,348,349],{},"Change"," \"PlayStore.enabled=false\" to \"PlayStore.enabled=true\"",[305,352],{},[45,354,349],{},[305,356],{},"\nimage.sysdir.1 = system-images\\android-30\\google_apis\\x86\\",[305,359],{},[45,361,362],{},"TO","\nimage.sysdir.1 = system-images\\android-30\\google_apis_playstore\\x86\\",[30,365,366,367,370,371,373],{},"Return to Android Virtual Device manager and start the image.  At this point, there will be no indication that the Play Store is installed on this device however after starting up it will display correctly.  ",[45,368,369],{},"Start the emulator",".",[305,372],{},[82,374],{"alt":84,"src":375},"\u002Farticles\u002Fimages\u002Fandroidemulator_playstore4.png",{"title":84,"searchDepth":87,"depth":87,"links":377},[],"2022-03-27","When working with Android emulators not all come pre-installed with the PlayStore installed.  The following are steps to enable PlayStore on startup.","\u002Farticles\u002Fimages\u002Fyourvirtualdevices.png",{},"\u002Farticles\u002Fandroid-emulator-playstore",{"title":292,"description":379},"articles\u002Fandroid-emulator-playstore",[386,288],"android","TK1c3u6kKnpGHVSJSDz-765FoWfNMQ8t-QwTaF-h5vQ",1781574765922]