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…

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…

Building HashTrack with Flutter: Intro and setup

Welcome to the first post of this little series that I’m going to be publishing ~ every week from now. In this collection of posts I want to run you through creating a simple app with Flutter. Within this series we’ll be creating an application that allows us to track a collection of hashtags for both Twitter and Instagram, making it easy for us to view feeds of data for these tags whenever we desire. Building this application will allow us to learn how to: Setup a Flutter project within Android Studio Explore, create and use a collection of screens…

Exploring Android P: Magnifier

At Google I/O there were a lot of new announcements around the latest version of Android, P. One of these announcements was the new Magnifier functionality—a feature that will make it easier to view and select content that the magnifier is currently being shown for. In this article we’re going to take a quick dive into what this magnifier is and how we can use it on our own view components within our applications. Now, if you haven’t seen the new Magnifier component that is available in Android P then this is what it currently looks like: It’s quite a…

Learn Clean Architecture for Android at Caster.io

Last year I opened sourced a collection of Clean Architecture boilerplate repositories over at my works’ GitHub page. Whilst these were experiments and me exploring to find a balance between abstraction and maintainable code, these all gathered quite a bit of attention and with this attention came a lot of questions. These questions were all understandable to be asked as there was a lot going within these projects: Between the three there was use of MVP, MVVM and MVI architectural approaches Persistence was handled using Room For the MVVM and MVI examples, the Lifecycle Architecture components were used Dependency injection…

Implementing text input in Flutter apps

In an app I’m working on I needed to allow the user to input some data before sending it off to a server. This is quite a common task for applications to implement, so in this post lets take a look at how we can do this in our Flutter apps. When it comes to textual input in Flutter apps there is one two widgets that you’re probably going to use — this is the TextField and the TextFormField. The TextFormField is simply a wrapped TextField that provides us with some extra functionality such as input validation. However, in this post we’re…