Author Archives: Google Developers

Extending support for App Engine bundled services (Module 17)

Posted by Wesley Chun (@wescpy), Developer Advocate, Google Cloud

Background

App Engine initially launched in 2008, providing a suite of bundled services making it convenient for applications to access a database (Datastore), caching service (Memcache), independent task execution (Task Queue), Google Sign-In authentication (Users), or large "blob" storage (Blobstore), or other companion services. However, apps leveraging those services can only run their apps on App Engine.

To increase app portability and help Google move towards its goal of having the most open cloud on the market, App Engine launched its 2nd-generation service in 2018, initially removing those legacy services. The newer platform allows developers to upgrade apps to the latest language runtimes, such as moving from Python 2 to 3 or Java 8 to 11 (and today, Java 17). One of the major drawbacks to the 1st-generation runtimes is that they're customized, proprietary, and restrictive in what you can use or can't.

Instead, the 2nd-generation platform uses open source runtimes, meaning ability to follow standard development practices, use common/known idioms, and have fewer restrictions of 3rd-party libraries, and obviating the need to copy or "vendor" them with your code. Unfortunately, to use these newer runtimes, migrating away from App Engine services were required because while you could upgrade language releases, there was no access to bundled services, breaking apps or requiring complete rewrites, making it a showstopper for many users.

Due to their popularity and the desire to ease the upgrade process for customers, the App Engine team restored access to most (but not all) of those services in Fall 2021. Today's Serverless Migration Station video demonstrates how to continue usage of bundled services available to Python 3 developers.

Showing App Engine users how to use bundled services on Python 3


Performing the upgrade

Modernizing the typical Python 2 App Engine app looks something like this:
  1. Migrate from the webapp2 framework (not available in Python 3)
  2. Port from Python 2 to 3, preserve use of bundled services
  3. Optional migration to Cloud standalone or similar 3rd-party services

The first step is to move to a standard Python web framework like Flask, Django, Pyramid, etc. Below is some pseudocode from Migration Module 1 demonstrating how to migrate from webapp2 to Flask:

codeblocks for porting Python 2 sample app from webapp2 to Flask
Step 1: Port Python 2 sample app from webapp2 to Flask

The key changes are bolded in the above code snippets. Notice how the App Engine NDB code [the Visit class definition plus store_visit() and fetch_visits() functions] are unaffected by this web framework migration. The full webapp2 code sample can be found in the Module 0 repo folder while the completed migration to Flask sample is located in the Module 1 repo folder.

After your app has ported frameworks, you're free to upgrade to Python 3 while preserving access to the bundled services if your app uses any. Below is pseudocode demonstrating how to upgrade the same sample app to Python 3 as well as the code changes needed to continue to use App Engine NDB:

codeblocks for porting sample app to Python 3, preserving use of NDB bundled service
Step 2: Port sample app to Python 3, preserving use of NDB bundled service

The original app was designed to work under both Python 2 and 3 interpreters, so no language changes were required in this case. We added an import of the new App Engine SDK followed by the key update wrapping the WSGI object so the app can access the bundled services. As before, the key updates are bolded. Some updates to configuration are also required, and those are outlined in the documentation and the (Module 17) codelab.

The NDB code is also left untouched in this migration. Not all of the bundled services feature such a hands-free migration, and we hope to cover some of the more complex ones ahead in Module 22. Java, PHP, and Go users have it even better, requiring fewer or no code changes at all. The Python 2 Flask sample is located in the Module 1 repo folder, and the resulting Python 3 app can be found in the Module 1b repo folder.

The immediate benefit of step two is the ability to upgrade to a more current version of language runtime. This leaves the third step of migrating off the bundled services as optional, especially if you plan on staying on App Engine for the long-term.


Additional options

If you decide to migrate off the bundled services, you can do so on your own timeline. It should be a consideration should you ever want to move to modern serverless platforms such as Cloud Functions or Cloud Run, to lower-level platforms because you want more control, like GKE, our managed Kubernetes service, or Compute Engine VMs.

Step three is also where the rest of the Serverless Migration Station content may be useful:

*code samples and codelabs available; videos forthcoming

As far as moving to modern serverless platforms, if you want to break apart a large App Engine app into multiple microservices, consider Cloud Functions. If your organization has added containerization as part of your software development workflow, consider Cloud Run. It's suitable for apps if you're familiar with containers and Docker, but even if you or your team don't have that experience, Cloud Buildpacks can do the heavy lifting for you. Here are the relevant migration modules to explore:


    Wrap-up

    Early App Engine users appreciate the convenience of the platform's bundled services, and after listening to user feedback, adding them back to 2nd-generation runtimes is another way we can help developers modernize their apps. Whether upgrading to newer language runtimes to stay on App Engine and continue to use its bundled services, migrating to Cloud standalone products, or shifting to other serverless platforms, the Google Cloud team aims to provide the tools to help streamline your modernization efforts.

    All Serverless Migration Station content (codelabs, videos, source code [when available]) can be accessed at its open source repo. While our content initially focuses on Python users, the Cloud team is working on covering other language runtimes, so stay tuned. Today's video features a special guest to provide a teaser of what to expect for Java. For additional video content, check out the broader Serverless Expeditions series.

    Introducing Developer Journey: November 2022

    Posted by Lyanne Alfaro, DevRel Program Manager, Google Developer Studio

    Developer Journey is a new monthly series to spotlight diverse and global developers sharing relatable challenges, opportunities, and wins in their journey. Every month, we will spotlight developers around the world, the Google tools they leverage, and the kind of products they are building.

    We are kicking off #DevJourney in November to give members of our community the chance to share their stories through our social platforms. This month, it’s our pleasure to feature four members spanning products including Google Developer Expert, Android, and Cloud. Enjoy reading through their entries below and be on the lookout on social media platforms, where we will also showcase their work.

    Headshot of Sierra Obryan smiling
    Sierra OBryan, Google Developer Expert, Android


















    Sierra OBryan

    Google Developer Expert, Android
    Cincinnati, OH
    Twitter and Instagram: @_sierraOBryan

    What Google tools have you used?

    As an Android developer, I use many Google tools every day like Jetpack Compose and other Android libraries, Android Studio, and Material Design. I also like to explore some of the other Google tools in personal projects. I’ve built a Flutter app, poked around in Firebase, and trained my own ML model using the model maker.

    Which tool has been your favorite to use? Why?

    It’s hard to choose one but I’m really excited about Jetpack Compose! It’s really exciting to be able to work with a new and evolving framework with so much energy and input coming from the developer community. Compose makes it easier to quickly build things that previously could be quite complex like animations and custom layouts, and has some very cool tooling in Android Studio like Live Edit and recomposition counts; all of which improve developer efficiency and app quality. One of my favorite things about Compose in general is that I think it will make Android development more accessible to more people because it is more intuitive and easier to get started and so we’ll see the Android community continue to grow with new perspectives and backgrounds bringing in new ideas.

    Google also provides a lot of really helpful tools for building more accessible mobile apps and I’m really glad these important tools also exist! The Accessibility Scanner is available on Google Play and can identify some common accessibility pitfalls in your app with tips about how to fix them and why it’s important. The “Accessibility in Jetpack Compose” code lab is a great starting place for learning more about these concepts.

    Please share with us about something you’ve built in the past using Google tools.

    A favorite personal project is a (very) simple flower identifying app built using ML Kit ’s Image Labeling API and Android. After the 2020 ML-focused Android Developer Challenge, I was very curious about ML Kit but also still quite intimidated by the idea of machine learning. It was surprisingly easy to follow the documentation to build and tinker with a custom model and then add it to an Android app. I just recently migrated the app to Jetpack Compose.

    What advice would you give someone starting in their developer journey?

    Find a community! Like most things, developing is more fun with friends.


    Photo of Harun Wangereka smiling
    Harun Wangereka, Google Developer Expert, Android

















    Harun Wangereka

    Google Developer Expert, Android

    What Google tools have you used?

    I'm an Android Engineer by profession. The tools I use on a day-to-day basis are Android as the framework, Android Studio as the IDE, and some of the Jetpack Libraries from the Android Team at Google.

    Which tool has been your favorite to use? Why?

    Jetpack libraries. I love these libraries because they solve most of the common pain points we, as Android developers, faced before they came along. They also concisely solve them and provide best practices for Android developers to follow.

    Please share with us about something you've built in the past using Google tools.

    At my workplace, Apollo Agriculture, I collaborate with cross-functional teams to define, design and ship new features for the agent's and agro-dealer’s Android apps, which are entirely written in Kotlin. We have Apollo for Agents, an app for agents to perform farmer-related tasks and Apollo Checkout, which helps farmers check out various Apollo products. With these two apps, I'm assisting Apollo Agriculture to make financing for small-scale farmers accessible to everyone.

    What advice would you give someone starting in their developer journey?

    Be nice to yourself as you learn. The journey can be quite hard at times but remember to give yourself time. You can never know all the things at once, so try to learn one thing at a time. Do it consistently and it will pay off in the very end. Remember also to join existing developer communities in your area. They help a lot!


    Selfie of Richard Knowles at the beach
    Richard Knowles, Android Developer
























    Richard Knowles

    Android Developer
    Los Angeles, CA

    What Google tools have you used?

    I’ve been building Android apps since 2011, when I was in graduate school studying for my Master’s Degree in Computer Engineering. I built my first Android app using Eclipse which seemed to be a great tool at the time, at least until Google’s Android Studio was released for the first time in 2014. Android Studio is such a powerful and phenomenal IDE! I’ve been using it to build apps for Android phones, tablets, smartwatches, and TV. It is amazing how the Android Accessibility Test Framework integrates with Android Studio to help us catch accessibility issues in our layouts early on.

    Which tool has been your favorite to use? Why?

    My favorite tool by far is the Accessibility Scanner. As a developer with a hearing disability, accessibility is very important to me. I was born with a sensorineural hearing loss, and wore hearing aids up until I was 18 when I decided to get a cochlear implant. I am a heavy closed-captioning user and I rely on accessibility every single day. When I was younger, before the smartphone era, even through the beginning of the smartphone era, it was challenging for me to fully enjoy TV or videos that didn’t have captions. I’m so glad that the world is starting to adapt to those with disabilities and the awareness of accessibility has increased. In fact, I chose the software engineering field because I wanted to create software or apps that would improve other people’s lives, the same way that technology has made my life easier. Making sure the apps I build are accessible has always been my top priority. This is why the Accessibility Scanner is one of my favorite tools: It allows me to efficiently test how accessible my user-facing changes are, especially for those with visual disabilities.

    Please share with us about something you’ve built in the past using Google tools.

    As an Android engineer on Twitter’s Accessibility Experience Team, one of our initiatives is to improve the experience of image descriptions and the use of alt text. Did you know that when you put images in your Tweets on Twitter, you can add descriptions to make them accessible to people who can’t see images? If yes, that is great! But do you always remember to do it? Don’t worry if not - you’re not alone. Many people including myself forget to add image descriptions. So, we implemented Alt Text reminders which allow users to opt in to be notified when they tweet images without descriptions. We also have been working to expose alt text for all images and GIFs. What that means is, we are now displaying an “ALT” badge on images that have associated alternative text or image descriptions. In general, alt text is primarily used for Talkback users but we wanted to allow users not using a screen reader to know which images have alternative text, and of course allow them to view the image description by selecting the “ALT” badge. This feature helped achieve two things: 1) Users that may have low-vision or other disabilities that would benefit from available alternative text can now access that text; 2) Users can know which images have alternative text before retweeting those images. I personally love this feature because it increases the awareness of Alt text.

    What advice would you give someone starting in their developer journey?

    What an exciting time to start! I have three tips I'd love to share:

    1) Don’t start coding without reviewing the specifications and designs carefully. Draw and map out the architecture and technical design of your work before you jump into the code. In other words, work smarter, not harder.

    2) Take the time to read through the developer documentation and the source code. You will become an expert more quickly if you understand what is happening behind the scenes. When you call a function from a library or SDK, get in the habit of looking at the source code and implementation of that function so that you can not only learn as you code, but also find opportunities to improve performance.

    3) Learn about accessibility as early as possible, preferably at the same time as learning everything else, so that it becomes a habit and not something you have to force later on.


    Headshot of Lynne Langit smiling
    Lynn Langit, GDE/Cloud


























    Lynn Langit

    GDE/Cloud
    Minnesota
    Twitter: @lynnlangit

    What Google tools have you used?

    So many! My favorite Google Cloud services are CloudRun, BigQuery, Dataproc. Favorite Tools are Cloud Shell Editor, SSH-in browser for Compute Engine and Big Query Execution Details.

    Which tool has been your favorite to use? Why?

    I love to use the open source Variant Transforms tool for VCF [or genomic] data files. This tool gets bioinformaticians working with BigQuery quickly. Researchers use the VariantTransforms tool to validate and load VCF files into BigQuery. VariantTransforms supports genome-scale data analysis workloads. These workloads can contain hundreds of thousands of files, millions of genomic samples, and billions of input records.

    Please share with us about something you’ve built in the past using Google tools.

    I have been working with teams around the world to build, scale, and deploy multiple genomic-scale data pipelines for human health. Recent use cases are data analysis in support of Covid or cancer drug development.

    What advice would you give someone starting in their developer journey?

    Expect to spend 20-25% of your professional time learning for the duration of your career. All public cloud services, including Google Cloud, evolve constantly. Building effectively requires knowing both cloud patterns and services at a deep level.

    Paul Kinlan shares his passion for web development and how to get involved at DevFest

    Posted by Komal Sandhu - Global Program Manager, Google Developer Groups

    “The pace of technology is changing so quickly that it’s impossible sometimes to know where to start and how. What are the things I need to focus on? It’s just too hard to work out. I’m motivated to give developers a clear direction that cuts through a lot of this challenge.”

    Learn Chrome tools and tips from Chrome Lead, Paul Kinlan, and hear from him first-hand on how to get involved.


    Among the many inspiring experts in the Chrome developer community is Paul Kinlan, a Googler who serves as the Lead Chrome & Web Platform Developer Relations team. Read on to see Paul’s outlook on his favorite Chrome tools and the Chrome developers that inspire him.

    Tell us about yourself:

    My name is Paul Kinlan, and I lead the Chrome & Web Platform Developer Relations team. I’m in a very lucky position, in that I get to work with a huge range of people who are passionate about the web and put their whole careers into continuing to help the web thrive for decades to come. If you are interested, you can follow my site: paul.kinlan.me

    What is your origin story?

    “I grew up on the Wirral in the UK, a peninsula located in North West England and part of Wales. I’ve been surrounded by computers since my earliest childhood memories, like watching my dad fix computers in the house (it's hard to count how many warnings I got to not touch the capacitor at the back of the monitor... but it looked fun).

    I also was going to computer clubs and watching the demo and cracking scenes (I might have “loaned” some games from people) and was keen on finding friends in school who were just like me and liked games & computers.”

    How did you get started in this space? Why did you get into Web technology specifically?

    “When I was a kid, my dad tried to get me to program, but I just didn’t get it. Then, when I was about 12 years old and first saw the Street Fighter arcade game, it clicked. I got the concept of loops, reading joysticks, and getting things on the screen.

    At the same time, my grandad was struggling to pick his lottery numbers, and I thought I could help him with some software. I fired up QBasic, read the manual and got started. I almost quit though, when I didn’t realize the US had a different spelling for colour... (I do wonder how life would have been different if I’d stopped there).

    Jump forward a couple of years, and the web came about, and I was just tinkering, and I realized that I could build simple sites and applications with a bit of Perl and HTML. I was hooked, started a business, and went from there. Now I’m here, on the Chrome team, hoping that I can offer the same opportunities to developers that I had.”

    What are some challenges that you have observed developers being faced with?

    “Information overload. The pace of technology is changing so quickly that it’s impossible sometimes to know where to start and how. What are the things I need to focus on? It’s just too hard to work out. I’m motivated to give developers a clear direction that cuts through a lot of this challenge.”

    What do you think is the most interesting or useful learning resource for learning more about Chrome & Web? Is there a particular library or codelab that everyone should learn?

    “I’m biased, but https://web.dev/learn is a great resource that covers some core fundamentals of web development, and we’re always improving it with the latest guidance on how to do good web development.

    I know most people aren’t like me, but I found engrossing myself in programming reference materials (combined with a lot of tinkering) was a great way to start, and if you combine MDN (Mozilla Developer Network) with sites like glitch.com or GitHub, you have the ability to quickly learn and test ideas without having to have any installed software. It’s a really incredible time to be a developer.”

    What are some most surprising or inspiring ways developers and technologists are building together using Chrome and Web?

    "Oh – amazing question! 

    Right now, the intersection of Web and ML is incredibly exciting. People are building sites and apps that do things that we never thought were possible and are then able to give people access to it via a simple URL." 

    "I was watching the folks over at Corridor Crew (Visual effects technologists), and they had this challenge to rotoscope a person out of a video, replace the background with a different video, and then put the person back on top - the fastest solution was built in the browser using ML. ?

    At the same time, I also love that people are bringing Apps to the web that we never thought would be possible on the web, such as Photoshop and Audacity. People are now building full blown video editors on the web, enabling anyone with a browser to become a video producer. It’s amazing.

    The web enables so much, and so much that I never thought possible, just at the click of a link. Every day, I see something that excites me, and that’s why I love it.”

    What’s a specific use case of Chrome / Web technology that excites you?

    “I’m personally very passionate about the Fugu (deep hardware) set of APIs because they enable entire classes of businesses to come to the web for the first time.

    I’m also very excited about the new range of CSS and UI related APIs because they make once complex things incredibly simple. The Web is primarily a visual medium; however, the perception of quality has lagged what people get on other platforms (such as Android and iOS apps), and these new primitives and concepts will enable richer and more fluid user interfaces, with less work needed from the developer or designer.”

    How can developers be successful building on Chrome & Web?

    “It all depends on the stage you're at - if you’re an established site, then I would look to improve the user experience with things like Core Web Vitals.

    If you are just starting, just start - there are so many tools that now let you start to prototype in the browser and get something that people can use incredibly quickly. In the past, you used to have to worry about the full-stack (Hosting -> Front-end), now that is getting less of an issue.”

    What’s next for Chrome & Web Community? What might the future look like?

    “Whatever I say will be wrong ? - But I like these questions, so I hope people will humor me.... It looks like it takes about 3-5 years for a feature launched in one browser to become available across Blink, WebKit and Gecko, so with that in mind, the near future probably looks a lot like right now, but more evenly spread (in terms of compatibility) - projects like Interop 202X are making it easier to build sites that work everywhere.

    The further future though....? I made a talk years ago about the concept of “The Headless Web” - where I see a lot of opportunities for services or assistants like Siri or Google Assistant to make more sense of a web page and let you interact with it (and not just read it back).

    At the same time, there are heaps of other platforms that are changing the definition of what the Web means. Facebook, WeChat, and others - are browsers and platforms in their own right, with hooks back into their own platforms. When I look at the billions of people that have come online in the last couple of years, as the world went mobile (and the billions more still to come online) - will they use the browser as we know it? Or will they use these ‘alternative browser’ platforms...

    All I know is that we need to keep making the experience of the web better for everyone.”

    What is the focus for Web & Chrome currently and why?

    Chrome is still focused on the principles that it set out at its launch: “a web that is Speedy, Simple and Secure.” - when you look at that lensing, so much of our work has been in service of these. Take, for example, “Core Web Vitals” - we worked out a set of metrics that could be used to determine if your site had a great user experience, and I believe it’s fundamentally changed the web. Or, on another axis, you look at technologies like WASM, which are enabling native code (e.g C/C++) to run safely in a sandbox in the browser, at speeds that are getting close to what you would expect an installed application to reach.”

    How do Web & Chrome help expand the impact of developers?

    Universal access. The link enables this, and we need to fight to keep it open and accessible to all.’

    Anything else you would like to share with the community of Google developers around the world?

    There is a lot of turmoil right now in the world; spend time listening to people, supporting them, and raising them up. When I got started, the community around me was so supportive and helped me more than I could help it - I use my time now to give people from all backgrounds the opportunities that I was fortunate to have access to. I hope that others can do the same.”

     

    Find a Google Developer Group hosting a DevFest near you.

    Want to learn more about Google Web Technologies and Google Chrome? Hoping to attend a DevFest or Google Developer Groups (GDG)? Find a GDG hosting a DevFest near you here.

    Interview with Doug Duhaime, contributor to Google’s Dev Library

    Posted by the Google Dev Library Team

    Introducing the Dev Library Contributor Spotlights - a blog series highlighting developers that are supporting the thriving development ecosystem by contributing their resources and tools to Google Dev Library.

    We met with Doug Duhaime, Full Stack Developer in Yale University's Digital Humanities Lab, to discuss his passion for Machine Learning, his processes and what inspired him to release his PixPlot project as an Open Source.

    What led you to explore the field of machine learning?

    I was an English major in undergrad and in graduate school. I have a PhD in English literature. My dissertation was exploring copyright history and the ways that changes in copyright law affected the book market. How does the institution of fixed duration copyright influence the book market? To answer this question, I had to mine an enormous collection of data - half a million books, published before 1800 - to look at different patterns. That was one of the key projects that got me inspired to further explore the world of Machine Learning.

    In fact, one of my projects - the PixPlot library - uses computer vision to analyze image collections, which was also partially used in my research. Part of my research looked at plagiarism detection and how readily people are inclined to copy images once it becomes legal to copy them from other texts. Computer vision helps us to answer these questions and identify key patterns.

    I’ve seen machine learning and programming as a way to ask new questions in historical contexts. And there's a whole field of us - we're called digital humanists. Yale University, where I've been for the last five years, has a fantastic digital humanities program where researchers are asking questions like this and using fun machine learning platforms like TensorFlow to answer those questions.

    Screenshot from the PixPlot library showing Image Fields in the Meserve-Kunhardt Collection with the following identified hotspots: Boxers, Buildings, Buttons, Chairs, Gowns

    Can you tell us more about the evolution of your PixPlot library project?

    We started in Yale's digital humanities lab with a project called neural neighbors. And the idea here was to find patterns in the Meserve-Kunhardt Collection of images.

    Meserve-Kunhardt is a collection of photographs largely from the 19th century that Yale recently acquired. After being acquired by the university, some curators were preparing to identify all this really rich metadata to describe these images. However, they had a backlog, and they needed help to try to make sense of what's in this collection. And so, Neural Neighbors was our initial attempt to answer this question.

    As this project went on, we started running up against limitations and asking bigger questions. For example, instead of just looking at the pictures, what would it be like to look at the entire collection all at once? In order to answer this question, we needed a more performant rendering layer.

    So we decided to utilize TensorFlow, which allowed us to extract vector representation of each image. We then compressed the dimensionality of those vectors down to 2D. But for PixPlot, we decided to use a different dimensionality reduction technique called umap. And that brought us to the first release of PixPlot.

    The idea here was to take the whole collection, shoot it down into 2D, and then let you move through it and look at the images in the collection wherein we expect images with similar content to be placed close by one another.

    And so it's just evolved from that early genesis and Neural Neighbors through to where it is today.

    What inspired you to release PixPlot as an open source project?

    In the case of PixPlot, I was working for Yale University, and we had a goal to make as much of our contributions to the software world as possible open and publicly accessible without any commercial terms.

    It was a huge privilege to spend time with the lab and build software that others found useful. I would say even more generally, in my personal life, I really like building things that people find useful and, when possible, contributing back to the open source world because, I think, so many of us learn from open source.

    Google Dev Library Quote: We look at other people's examples and get excited by tools and projects others are building. And many of those are non-commercial. They're just open and free to the world. And it's great to give back when we can. Doug Duhaime Dev Library Contributor

    Find out more content contributed and authored by Doug Duhaime and discover more unique tools and resources on the Google Dev Library website!

    Get to know Google’s Coding Competitions

    Posted by Julia DeLorenzo, Program Manager, Coding Competitions

    Google’s Coding Competitions provide interactive rounds throughout the year to help you grow your skills, challenge yourself, and connect with developers from around the globe.

    Google has three flagship Coding Competitions: Code Jam, Hash Code, and Kick Start. Each competition is unique and offers different types of challenges from algorithmic puzzles to team-based optimization problems. Our Coding Competitions are designed and tested by a team of Google engineers and program managers who craft new and engaging problems for users to tackle.

    Google’s Coding Competitions have been around for quite a while (two decades!) and this passionate group of contributors and fans around the world makes each new season even more exciting than the last.

    Hear from two program managers on the Coding Competitions team:

    Emilly Miller, Google’s Coding Competitions Lead Program Manager

    Emily Miller Headshot

    “My first year working on Coding Competitions was 2013 with Code Jam. The Finals were hosted in London that year — video proof — and I've been hooked ever since! It's been incredibly rewarding and a whole lot of fun to interact with coders from around the world over the years.

    I find it so cool that even after 20 years of Code Jam, the space of online competitions continues to evolve and grow. To me, it's a testament to the strength of the global online community and the value that products like Code Jam, Hash Code, and Kick Start provide developers to connect and learn from one another. Plus, the problem statements are so creative and fun!

    My advice to future participants is, jump in and try it out! We're all here for something unique to us, so find out what that is for you and pursue that. Hitting roadblocks along the way is likely, so don't get discouraged. Remember there's a global community of coders out there waiting to help you!”


    Julia DeLorenzo, Google’s Coding Competitions Program Manager

    Julia DeLorenzo Headshot

    “My first introduction to Google’s Coding Competitions was in 2016, when I had the chance to volunteer at the Code Jam World Finals in New York City. The excitement and energy of that Finals stuck with me – four years later, in 2020, an opportunity to work on Coding Competitions full time came up and I jumped at the chance!

    I love that Google’s Coding Competitions offer different ways to participate. No matter where you are in your competitive programming journey, there’s a Competition for you. People who are new to competitive programming can get familiar with space by participating in Kick Start; those who want to participate with friends or teammates can try Hash Code; and folks looking for a challenge should try Code Jam. Some people participate in all three! The problems you’ll see are always different and creative so you’re sure to have fun along the way.

    As cliché as it sounds, my advice to future participants is that failure is an opportunity for growth. Don’t let imposter syndrome or fear of failure stand in the way of trying something new. If you come across a problem you can’t solve – that’s great! It’s an opportunity to challenge yourself and try a different approach.”


    Stay Tuned!

    Over the next few weeks, keep an eye on the blog – we’ll be spotlighting each of Google’s Coding Competitions in a series of blog posts to help you understand the ins and outs of each competition.

    Introducing AppSheet databases: Build data driven apps for Google Workspace

    Posted by Shirley Ng, Product Manager, Google Cloud

    AppSheet is Google’s platform for building no-code custom apps and workflows to automate business processes. It lets app creators build and deploy end-to-end apps and automations without writing code.

    Over the past year, we’ve added more functionality to AppSheet, extending how it can maximize the power of Google Workspace through integrations with products such as Gmail, Google Drive and Apps Script. To improve the experience for app creators and users, we’re excited to introduce in public preview AppSheet databases, a built-in database for citizen developers to easily and securely manage their data.

    Introducing AppSheet databases

    AppSheet databases will give users access to an easy to use, first party database for creating and managing data.

    During public preview, access to AppSheet databases will be enabled by default for everyone but it will not affect existing apps. Use of this feature in public preview will be included at no additional cost in your AppSheet subscription plan, but limited to 10K rows per table, 20 tables per database and 20 databases per user. Please note that these limits may change when the feature is generally available.

    Using AppSheet databases

    To get started, you can create a blank database from the My Apps page.

    Screen capture of creating a blank database from the My Apps page.

    The database editor provides a complete toolset for relational data design and management directly in AppSheet.

    Screen capture of the database editor's toolset for relational data design and management in AppSheet.

    Once a database has been created, you can generate an app directly from the database.

    Screen capture of how to generate an app directly from the database.

    Since this feature is in public preview, we’re still making improvements and appreciate your patience. Your direct feedback will help us improve it before it becomes generally available next year.

    Getting started

    Check out the following resources to help get you started with AppSheet databases today!

    • For more information on AppSheet databases please see our support page.
    • Sign up for our office hours session to see AppSheet databases in action, and to ask questions and receive answers live.
    • Explore the AppSheet platform and test your apps with up to 10 users at no cost, get started for free.
    • Get inspiration with our how-to video series on Building with AppSheet.

    #WeArePlay | Meet app founders helping people around the world

    Posted by Leticia Lago, Developer Marketing

    There are millions of apps available on Google Play, created by thousands of founders across the world. Each single app is unique and special in its own right, but they all have one thing in common - their purpose is to help. From helping motorhome enthusiasts find somewhere to camp, small business owners manage their finances or waste pickers make a reliable income - in this latest batch of #WeArePlay stories, we celebrate app founders who are helping people across the world in extraordinarily different ways.

    First we begin with Cristian. Originally from Villa Rica in southern Chile, he made his family very proud by being the first to go to university. During his studies in Santiago, he learned about the local waste pickers – people who make an income by searching through trash cans and finding valuable materials to sell. Despite his mother’s wishes, he was so motivated to help them that he dropped out of university and dedicated all his time to creating an app. Reciclapp works by helping waste pickers connect with local businesses, so they can collect resellable materials directly from them. So far, the app has helped waste pickers across the city save time and guarantee a more reliable income. As Cristian has grown his company to a team of 12 and expanded into Mexico, his mother is now very proud of his bravery and success.

    Next, Kennedy and Duke. When they were children, their father’s business sadly failed because managing his finances and tracking spending was too hard. Years later, after a successful career abroad in tech, Kennedy decided it was time to return to his homeland of Nigeria and build his own company. Inspired by his father’s struggle, he partnered with brother Duke and travelled across the country to interview other business owners about their financial struggles. Using this research, they created Kippa - the app simplifies bookkeeping to make sending invoices, storing receipts and setting up a bank account easy. It’s now used by over half a million businesses in Nigeria, as Kennedy mentions “without Google Play, we couldn't help as many business owners”.

    To round up today, Gijs and Eefje. The couple adore renting campervans and travelling around to explore the natural beauty of Europe, but they always seemed to struggle with one thing - easily finding places to stay. Feeling like nothing out there could help them, they decided to give app development a go and create Campy. The app works as a digital camping encyclopaedia: helping like-minded campervan enthusiasts discover the perfect spots to set up camp, plan their trips and meet others who love the outdoors. A few years after Campy launched, Gijs and Eefje now have 2 little girls to bring on their big adventures, and are elated with the feedback they have received - “it never ceases to amaze me what a tiny app can do for so many people”.

    Check out all the stories from around the world at g.co/play/weareplay and stay tuned for more coming soon.


    How useful did you find this blog post?



    Dev Library Letters: 14th Issue

    Posted by Garima Mehra, Program Manager

    ‘Google Dev Library letters’ is curated to bring you some of the best projects developed with Google tech that have been submitted to the Dev Library platform. We hope this brings you the inspiration you need for your next project!


    Android



    Image-compressor 
    by Vinod Baste

    Check out Vinod’s Android Image compress library that helps reduce the size of the image by 90% without losing any of its pixels.


    SealedX 
    by Jaewoong Eum

    Learn how to auto-generate extensive sealed classes and interfaces for Android and Kotlin.

    Flutter



    GitHub Actions to deploy
    Flutter Web to gh-pages
     
    by Sai Rajendra Immadi

    Tired of manually deploying the app every time? Or do you want to deploy your flutter web applications to gh-pages? Use this blog as your guide.



    Double And Triple Dots in Flutter 
    by Lakshydeep Vikram

    Learn the reason for using double and triple dots in flutter and where to use them.



    Machine Learning



    Nystromformer 
    by Rishit Dagli

    Learn how to use the Nystrom method to approximate standard self-attention. 


    Google Cloud



    by Ezekias Bokove

    Learn how to set up a notification system for Cloud Run services. 



    Switch to GCP for cost savings and better performance
    by Gaurav Madan

    Learn why architects dealing with complex application design and who use well-known Google services should consider the Google Cloud Platform. 




    "The Google community includes people with diverse backgrounds. No matter what an individual circumstance is, the platform should support anyone to explore and be creative. We encourage authors to boldly consider diverse backgrounds and to be inclusive when authoring."

    Vinesh Prasanna M

    Customer Engineer | Google Cloud 





    "Authoring a good code sample is hard. The difficulty comes from the additional pieces you need to add to your respository to keep the code sample fresh and appealing to your developers."

    Brett Morgan

    Developer Relations Engineer | Flutter







    Want to read more? 
    Check out the latest projects and community-authored content by visiting Google Dev Library
    Submit your projects to showcase your work and inspire developers!


    Creating a STEM culture on campus in Uganda

    Posted by Muhammad (Auwal) Samu, Developer Communities Regional Lead, Sub-Saharan Africa

    Halimah Bukirwa says she felt like she knew nothing about computers or coding when she started university but threw herself into learning about STEM as much as possible.

    “I committed to being the best at it, since I was given this awesome opportunity to actually study it.” Originally thinking she’d pursue a career in the field of aviation, Halimah joined several developer communities to learn more about engineering. That’s when she found the Google Developer Student Club (GDSC) at her university.

    Creating a culture of participation on campus

    She joined the local GDSC chapter as a core team member first, helping out with general logistics and planning, then the next year she applied to become the chapter Lead. Now, with all her community learnings, this fourth-year software engineering student at Makerere University in Kampala, Uganda, sees herself as a community leader and has her sights set on helping other software developers grow.

    Learnings and proud moments for the community

    The campus club achieved many milestones during Halimah’s tenure as the GDSC Lead. The chapter hosted over 40 events and reached over two thousand developers at her university. She also helped her chapter find inspiration to submit 11 projects to the annual GDSC Solution Challenge. These efforts were the result of intentionally creating a culture of support and helping other students find their footing as developers.


    “When we were starting GDSC, our objective was to help students learn, connect, and grow into developers, and identify problems in our community and address them using technology. GDSC has given students hands-on skills to apply what they study and create solutions for the problems in their communities.”

     

    Creating technical solutions for local problems

    The GDSC Makarere chapter submitted 11 projects to the annual GSDC Solution Challenge to come up with technical ways to solve community challenges, and one notable team from the club, MpaMpe, proudly finished in the Top 50 global projects with its crowdfunding hybrid app intended to reduce the financial and digital divide via crowdsourcing and donations.

    Halimah also answered the call to change the world through coding by also participating in the global GDSC Solution Challenge. “I discovered that technology is a tool we can use to drive change and transformation–to address the problems in our communities and create solutions.”

    Noting that Uganda has small women-owned enterprises that face high charges on bulk transactions. She and her team built a payment solutions app called Alfasente to help businesses digitize their payments at a lower cost. The project used Firebase to build the application backend and hosted it on the Google Cloud Platform. The team submitted to the Solution Challenge with the goal of addressing the UN Sustainable Goal #8, Decent Work and Economic Growth.

    Improving local farming conditions using Google Cloud Platform

    Beyond these Google tools and technologies, exposure to GDSC (along with her engineering curriculum) has allowed Halimah to quickly learn new technologies and concepts.


    “Organizing these events has been so fulfilling because I have witnessed so many students' lives transform. My university has received recognition from other entities, and I have been consulted by other people and organizations on tech-related issues.”


    No matter the tool or its application she shares that the GDSC program can help speed up the learning process. “We wanted to make sure that students find their place in the tech ecosystem, learn as much as they can, and connect and grow with other people,” she says. “We have seen that come to life. So many students are interested that now we need more room for students.”

    Halimah says she’s used the Google Cloud Platform for several university projects and internship work and is keen on using technology to address issues affecting the cultivation of a root vegetable called cassava that grows in her region.

    What’s next for Halimah and the GDSC chapter

    Halimah says she is honored to be considered as a potential recipient of the EMEA Generational Google Scholarship program for women studying computer science in Europe, the Middle East or Africa. She’s planning to better learn TensorFlow and is helping friends get started with Flutter projects, learning Flutter from codelabs, tutorials, videos, and documentation.


    “I am passionate about AI, ML, Data Science, and Cloud Computing, and I am confident that I can address the problems in the industries that I am passionate about, too. My goal is to graduate, go into a master's program, and possibly do an internship at a technology company.”


    Halimah is excited about her career journey and pleased by how much her GDSC club is growing with the new students starting their school term.

    Join a Google Developer Student Club near you

    Google Developer Student Clubs (GDSC) are community groups for college and university students like Halimah who are interested in Google developer technologies.

    With over 1800+ chapters in 112 countries, GDSC aims to empower developers like Halimah to help their communities by building technical solutions. If you’re a student and would like to join a Google Developer Student Club community, look for a chapter near you here, or visit the program page to learn more about starting one in your area.

    Build smarter and ship faster with the latest updates across our ecosystem

    Posted by Jeanine Banks, VP/GM, Developer X and DevRel

    At last week’s Made by Google launch event, we announced several new hardware products including the Pixel 7 and Pixel 7 Pro, Google Pixel Watch, and Google Pixel Tablet—a suite of innovative products that we’re excited about. While sure to delight users, it got me thinking—what will these changes mean for developers?

    It’s hard to build experiences that let users enjoy the best that their devices have to offer. Undoubtedly this brings a level of complexity for developers who will need to build and test against multiple OS updates and new features. That’s the thing about development—the environment is constantly evolving. We want to cut through the complexity and make it simpler to choose the technology you use, whether for an app on one device or across large and small screens.

    Earlier this year at Google I/O, we shared our focus on making developer tools work better together, and providing more guidance and best practices to optimize your end-to-end workflow. For example, we announced the new App Quality Insights window in Android Studio that shows crash data from Firebase Crashlytics directly inside the IDE to make it easier to discover, investigate, and fix offending lines of code.

    But our work doesn’t stop once I/O ends. We work all year round to offer increasingly flexible, open and integrated solutions so you can work smarter, ship faster, and confidently set up your business for the future.

    That’s why we’re excited to connect with you again—both in person and virtually—to share more recent product updates. Over the next three months, we have over 200 events in more than 50 countries reaching thousands of developers through product summits, community events, industry conferences, and more. Here are a few:

    DevFest | Now - December
    Local Google Developer Groups (GDG) organize these technology conferences according to the needs and interests of the region's developer community, and in the local language. Tune in virtually or join in person.

    Chrome | Multiple dates
    This year the Chrome team will meet you at your favorite regional developer conferences and events, in addition to online forums across time zones. Join us on the journey to build a better web. Check out the calendar.

    Google Cloud Next | October 11-13
    Learn how to transform with Google Cloud to build apps faster and make smarter business decisions.

    Firebase Summit | October 18
    Join this hybrid event online or in person in New York City to hear how Firebase can help you accelerate app development, run your app with confidence, and scale your business.

    Android Dev Summit | Beginning October 24
    Learn from the source about building excellent apps across devices, coming to you online and around the world. We’ll be sharing the sessions live on YouTube in three tracks spread across three weeks, including Modern Android Development on Oct 24, form factors on Nov 9, and platform on Nov 14.

    BazelCon | November 16-17
    Hosted by Bazel and Google Open Source, BazelCon connects you with the team, maintainers, contributors, users, and friends to learn how Bazel automates software builds and tests on Android and iOS.

    Women in ML Symposium | Coming in December
    Join open source communities, seek out leadership opportunities, share knowledge, and speak freely about your career development with other women and gendered minorities in a safe space. Catch up on last year’s event.

    Flutter Event | Coming in December/January
    Hear exciting product updates on Google’s open source framework for building beautiful, natively compiled, multi-platform applications from a single codebase. In the meantime, re-live last year’s event.


    We look forward to the chance to meet with you to share technical deep dives, give you hands-on learning opportunities, and hear your feedback directly. After you have heard what we’re up to, make sure to access our comprehensive documentation, training materials, and best practices to help speed up your development and quickly guide you towards success.

    Mark your calendars and register now to catch the latest updates.