📰 Good News app. Golang + Flutter + Hummingbird = 🖤
How Golang, Flutter and Hummingbird become friends and start working together.
Hello guys 🖖
It has been a while since I have written my last post on Medium and it was about Machine Learning for one of my project at Pace University. Actually it was almost 2 years ago and for this time I have launched a few native iOS and Android applications, developed some projects, worked for the international company as a React Native developer and gained a lot of experience. So now I have decided to dedicate my time to writing a series of chapters and share my knowledge with the world because it is always good to share what you have learnt with those who might struggle with the same issues you faced.
This article carries only introductory information and some plans for future articles which I will be posting as soon as they are ready.
So let’s begin.
I have been using Go for developing backends for my projects which are in production during last year and I really enjoy it because of its simplicity, efficiency and, of course, the throwback to those times when I was taking part in coding competitions and using C++ as the main language for solving problems. I am not a professional in Go but I have some tricks and boilerplate code that will save your time and you might find that information useful.
Besides that when I was looking for special topics, for example, how to deploy a backend on Digital Ocean with https available, I could not find needed information in one organised topic. Yes, it is not specifically about Go but using Docker, reverse proxy, managing certificates and deploying all of it on Digital Ocean (or analogues). As you may have guessed I will cover all of it in my first chapter where I will be writing a backend in Go, deploying it in a Docker container, using Traefik (it is a great reverse proxy made by guys from Continious) as a server with built-in Let’s encrypt certificates and DNS challenges managing tools (which is AWESOME) and all of that will be published on Digital Ocean and available through https requests! As a bonus I will use Colly for parsing sites and Mongo as a database.
Obviously, a backend should be written for solving a problem. And my problem or an idea that I am going to implement is a service that is going to parse some sites with interesting news. The name for this application is Good News. For sure, I can use RSS feeds of those sites and use them but I prefer using web crawling and site parsing in this project. I will show you how to prepare needed information to start parsing a site. I think this is going to be interesting!
Next question that could be asked is how I am going to read those news if I only create a backend for that. And the answer is simple — I am going to use Flutter to create mobile applications. Flutter is a new cool wave in the world of mobile development. If you have not heard about it, please spend 10 minutes to get familiar with it. I have chosen it because it seems promising for me as a replacement for React Native that I have been using for 2 years. Of course, as React Native, Flutter is not going to fully replace native development but it is a good fit for small-medium applications. I have played around with Flutter for a bit of time doing some basic stuff and I am going to dive into it while writing the second chapter. In addition I am going to publish this app to App Store and Google Play if everything goes as expected.
We love extra bonuses! And that is why I have thought that it would be cool to try Flutter for web that was recently presented on Google I/O and named Hummingbird. So I will publish it “next to” the backend in Go behind Traefik reverse proxy. Please, notice that Hummingbird is in alpha stage and strange things could happen. Let’s see how it goes!
As all the articles are going to be for beginners as well as for those who have some experience, I will be trying to explain everything as detailed as I can. Initially, I thought that it would be a good idea to write only three articles for each topic but it started to becoming overwhelming and I have decided to separate all content to chapters which contain small and easy-to-follow articles.
If you are ready for the journey where you will get new interesting information of full development cycle of a small project, please follow links to chapters below:
- 📰 Good News app. Backend in Golang behind Traefik reverse proxy with https available.
- [in progress] 📰 Good News app. Flutter for rapid mobile applications development.
- [in progress] 📰 Good News app. Hummingbird as a promising replacement for frontend frameworks.
I am glad that you have read this far 🙌 And now you can start reading the first chapter of my ”mini-book”.
📰 Good News app. Backend in Golang behind Traefik reverse proxy with HTTPS available.
Prerequisites & Idea, project and database structure and API endpoints.
If you have any comments or suggestions, please feel free to write them down or email me at firstname.lastname@example.org 🙂
If you would like to know when I post new articles, follow me on twitter 🐦