Exploring Flutter Packages: Date Time Picker

When it comes to developing applications, theres often some form of component or functionality that you need that doesn’t quite come as standard. In this new series I want to share some of the Flutter packages that I’ve been using in my projects – this is in the hope that it will help you to discover what’s out there to use in your projects, celebrate the work of the community and allow us to learn about how they can function within our projects. In this first article I want to take a look at a package called DateTimePickerFormField. In a…

Native Flutter Experiences: Bottom Navigation

When building Flutter applications, we have the ability to create native components which are styled for the native experience on both Android and iOS. Whilst by default we may implement things in a material style, it is important to bear this native experience in mind. In this article we will take a quick look at implementing bottom navigation for the styling of both Android and iOS. Note: The source code for the project used in this article can be found here.   Material Bottom Navigation We’ll begin by taking a look at implementing the Material style bottom navigation component. Continuing…

Flutter CI with Bitrise

If you weren’t already aware, I’m already a big fan of bitrise – and when I heard they were adding support for Flutter, I gained even more love for the product. Naturally I wanted to take this for a spin – so I decided to setup Bitrise CI with my Voice flutter project. Let’s take a quick look at how we can setup our Flutter projects in Bitrise CI and what is available with the workflow editor. Setting up the project requires minimal manual steps from your side – Bitrise automates as much of the process that is possible. After…

Giving Voice to the Voiceless with Flutter

Outside of my working hours I have often spent time with other people involved in animal rights — be it volunteering for a local animal sanctuary, visiting shelters or planning with other animal rights groups. One thing I’ve noticed along this time is that the awareness of these groups has never been too accessible — I’ve only discovered them through chance or word of mouth, and having known of them sooner I probably would have been involved a lot earlier. Voice is a simple directory app that aims to help you discover these groups and organisations to help raise awareness and get more people…

Native Flutter Experiences: Tabbed Navigation

When building Flutter applications, we have the ability to create native components which are styled for the native experience on both Android and iOS. Whilst by default we may implement things in a material style, it is important to bear this native experience in mind. In the first set of these articles we will take a quick look at implementing tabbed navigation for the styling of both Android and iOS. Material Tabbed Navigation When it comes to creating tabbed navigation with a Material approach, we make use of what is known as a TabBar — typically this will be placed within an…

Loading data from Firestore with Flutter

In a recent side-project of mine I needed to perform some simple loading of data from an external data source. This was all data that I had collated myself so I decided to manually load it up into Firestore — in this post we’re going to quickly take a look at how we can hook up our Flutter application to load data from a Firestore datastore to display to our users. This post will hopefully act as both a guide to show you how to implement Firestore in your apps and also a way to show you how little work is involved…

Building HashTrack with Flutter: Authentication logic

If you haven’t check out the previous post in these series, then you can do so here: Building HashTrack with Flutter: Intro and setup Building HashTrack with Flutter: Main class and Localization setup You can also find the code for this guide here: Now that we have the foundations of our application built, we’re going to go ahead and setup the first screens which will be shown to the user when opening the app — the authentication screens. This is going to require us to create and configure several different components: A sign-in screen — Providing a button that allows the user to sign-in…