Building Freetrade
Introducing Freetrade for iPad
How we developed the app with a brand new UI.
2/3/2021
|
Alex Curran
Building Freetrade
How we developed the app with a brand new UI.
2/3/2021
|
Alex Curran
Building Freetrade
Software Engineer Mathias Dewert talks about dealing with the issues that come with rapid growth.
26/2/2021
|
Mathias Dewert
Building Freetrade
Software Engineer Alexander Broadbent shares what we do in the shadows, and why it helps us to carefully develop features.
9/2/2021
|
Alexander Broadbent
Building Freetrade
Principal Data Engineer Benen Cahill shares our process for data here at Freetrade.
13/1/2021
|
Benen Cahill
Building Freetrade
Principal Product Designer Caitlin Rich shares her top reads to help inspire good design and keep user experience front of mind.
14/1/2021
|
Caitlin Rich
Building Freetrade
Including some big name S&P 500 companies
21/12/2020
|
Sam Poullain
Building Freetrade
Software Engineer Theo Gregory shares how we use serverless to speed up deployment.
17/12/2020
|
Theodore Gregory
Building Freetrade
Senior Product Manager, Jani Kiilunen, shares how we work with the Freetrade community to build the product
17/12/2020
|
Jani Kiilunen
Building Freetrade
Including SAP, Credit Suisse, Ryanair, Trivago
25/1/2021
|
Sam Poullain
Building Freetrade
Brand new for Plus members
6/1/2021
|
Sam Poullain
Building Freetrade
Freetrade Head of Engineering, Invest, Tim Drew, shares how we scale our platform using Cloud Firestore
21/12/2020
|
Timothy Drew
Building Freetrade
Freetrade Software Engineering Manager Rokey Ge shares his virtual onboarding experience.
10/12/2020
|
Sam Poullain
Building Freetrade
A big improvement to Free Share is here.
10/12/2020
|
Sam Poullain
Building Freetrade
See how Freetrade compares to other brokers.
2/3/2021
|
Sam Poullain
Building Freetrade
Senior Software Engineer Jimmy Thompson takes you through the three layers of the Freetrade app
10/12/2020
|
Building Freetrade
Gold miners, Twinkies, McDonald's and more.
10/12/2020
|
David Kimberley
Building Freetrade
A new limit of £25,000 for US stocks.
10/12/2020
|
Sam Poullain
Building Freetrade
Including fixed income, investment-grade and government bonds.
25/1/2021
|
Sam Poullain
Building Freetrade
Freetrade VP Product Duncan Leslie on vision, strategy and measuring success.
10/12/2020
|
Duncan Leslie
Building Freetrade
Market cap, dividend yield, and P/E ratio are here.
10/12/2020
|
David Kimberley
Building Freetrade
Compare your performance against a global benchmark
10/12/2020
|
David Kimberley
Building Freetrade
10/12/2020
|
Viktor Nebehaj
Building Freetrade
Everything we plan to add to your app before the holidays.
25/1/2021
|
Sam Poullain
Building Freetrade
Freetrade engineer Simon Poole talks about overcoming some serverless infrastructure challenges.
10/12/2020
|
David Kimberley
Building Freetrade
From Papa John's to Zambian cattle farmers, we've added a wide array of new stocks to the Freetrade universe
10/12/2020
|
David Kimberley
Building Freetrade
Freetrade Talent Sourcer, Isabelle Atunrase, shares why we should all celebrate Black History Month, and some of the ways we’re getting involved here at Freetrade.
10/12/2020
|
Sam Poullain
Building Freetrade
Our biggest addition of ETFs yet.
25/1/2021
|
Alex Campbell
Building Freetrade
Freetrade Senior Product Managers Anant Sangar and Glenn Drawbridge have been busy working on limit orders and SIPPs. Here, they chat through how use User Story Mapping.
10/12/2020
|
David Kimberley
Building Freetrade
More of what you want.
10/12/2020
|
Alex Campbell
Building Freetrade
Freetrade Senior Software Engineer Luke Smith talks about the nuts and bolts of our brokerage platform
10/12/2020
|
David Kimberley
Building Freetrade
Introducing your expanded stock universe.
10/12/2020
|
Alex Campbell
Building Freetrade
More ways to measure your portfolio performance
10/12/2020
|
Sam Poullain
Building Freetrade
It’s now even easier to add money to your Freetrade account
10/12/2020
|
Sam Poullain
Building Freetrade
Freetrade Senior Product Manager Glenn Drawbridge shares his story.
10/12/2020
|
Sam Poullain
Building Freetrade
Find out what's inside, and request your invite.
2/3/2021
|
Duncan Leslie
Building Freetrade
Over 100 new stocks, including Kodak, La-Z-Boy, Tiffany & Co, and Crocs.
29/1/2021
|
David Kimberley
Building Freetrade
Amy joins Freetrade as our first Head of People.
10/12/2020
|
Sam Poullain
Building Freetrade
100 stocks inc. Avis, Tripadvisor, Goodyear, AMC Entertainment, Denny’s
29/1/2021
|
David Kimberley
Building Freetrade
The first of many additions to order types.
10/12/2020
|
Sam Poullain
Building Freetrade
75 new stocks including Ericsson, Yelp, Gfinity, Youdao
10/12/2020
|
Sam Poullain
Building Freetrade
Country-specific ETFs, and stocks from Wendy’s to Columbia
25/1/2021
|
Sam Poullain
Building Freetrade
100 brand new stocks and ETFs are here
25/1/2021
|
Sam Poullain
Building Freetrade
This week's 100 new stocks and ETFs might be the best batch yet.
25/1/2021
|
Sam Poullain
Building Freetrade
Ferrari, Honda, Canadian Railway, United Airlines, Canadian banks, ETFs, and more
10/12/2020
|
Sam Poullain
Building Freetrade
You can now own a piece of Ed Sheeran
10/12/2020
|
Sam Poullain
Building Freetrade
Cannabis companies have arrived
10/12/2020
|
Sam Poullain
Building Freetrade
The former entrepreneur will be Freetrade’s non-executive director
10/12/2020
|
David Kimberley
Building Freetrade
Find out more about how Free Share works
10/12/2020
|
David Kimberley
Building Freetrade
250 new US stocks have landed
10/12/2020
|
Viktor Nebehaj
Building Freetrade
You can now invest in a slice of US companies
10/12/2020
|
Viktor Nebehaj
Building Freetrade
Meet the person responsible for making Freetrade look cool
10/12/2020
|
David Kimberley
Freetrade does not provide investment advice and individual investors should make their own decisions or seek independent advice. The value of investments can go up as well as down and you may receive back less than your original investment. Freetrade is a trading name of Freetrade Limited, which is a member firm of the London Stock Exchange and is authorised and regulated by the Financial Conduct Authority. Registered in England and Wales (no. 09797821).
Copyright © 2020 Freetrade, All rights reserved. The Apple logo is a trademark of Apple Inc. App Store is a service mark of Apple Inc. Google Play and the Google Play logo are trademarks of Google LLC.
Made with 🍩 in London.
Principal Software Engineer, Alex Curran, shares more about our process to prevent bugs as we build our mobile apps.
At Freetrade, developers work cross-platform to deliver features from beginning to end. The main benefit of this is that it avoids mistaken assumptions or differing behaviour over our platforms.
However, some of our developers haven’t worked on mobile platforms before. Mobile platforms can be daunting, with new build systems, languages and Integrated Development Environments (IDEs), and one thing we've been experimenting with is using Lint rules as "safety rails" to nudge people into doing the right thing.
Lint rules are a piece of code that checks your code to find issues with it. For example, there is an Android Lint check which prevents you from passing an ID referencing a string to a method that expects an ID referencing a colour. Linting is implemented on many platforms, including Javascript, Python and Swift.
For a while now, Android Lint has supported custom rules – they're covered in some great articles elsewhere. After getting your head around the fact you're programming code to understand code, they're simple to write in Kotlin. We've added a few to avoid easy mistakes that developers can make.
Instead of us having to be vigilant on PR (pull request) reviews for these things, developers can find out earlier by a more neutral observer, and with a 100% "error catching" rate.
Here’s an example of how we use Android Lint to ensure that all text in the app can be updated remotely.
We use a third-party library which allows us to update text within the app without having to release a new version of the app.
Whilst it works flawlessly under most circumstances, one place where the developer must be careful is when fetching a string that is set in a custom XML attribute:
valueLabel.text = styledAttributes.getString(R.styleable.Row_rowAmountText)
In places like this, the library cannot update the text; instead you need to use a slightly different method we built:
valueLabel.text = styledAttributes.getStringFromResources(resources, R.styleable.Row_rowAmountText)
This is really not obvious. So I decided to try to make a lint rule to warn about this usage that will cause problems later, which you can find the source code of here. It works great, as you can see here:
Now, no-one can repeat that mistake without getting an IDE warning (and an error on their PR, in case they don't see it in the IDE). Something that was previously not very explicit but important, is now enforced.
The ability to guide developers to doing the right thing is powerful, and the quick-fix suggestions (shown in the image above) are an excellent way of doing this.
Sadly, whilst we have a powerful Linter on Android, our version on iOS is more basic as SwiftLint only supports adding regex-based lint rules out-of-the-box. However, regex is powerful and we have used this to highlight a fair few issues.
Whilst we don't focus quite as much on coding style consistency at Freetrade (tabs vs spaces for example), I think it’s valuable to ensure that our developers get feedback about any mistakes they make earlier than at PR review. Custom lint rules allow us to do this in a way that isn't burdensome on the developer.
If you’d like to help us build an app to get everyone investing, check out the latest vacancies here.