Our project began with a small ask: build a small Python back-end using AWS Lambda and API Gateway (with just a handful of endpoints to support a few pages) and use Serverless [https://serverless.com/] to manage the Cloud Formation setup. Not very involved, not much code, not even much configuration for the deploy. Next came authentication. In pursuing the joint dreams of DRTW ("don't reinvent the wheel") and WALCAP ("write as little code as possible"), we selected AWS Cognito over other opti
Nowadays just about everyone, everywhere, regardless of age and ability, uses a smartphone. With that in mind, it’s more important than ever to consider all the different ways to make your app accessible to everyone to ensure an inclusive experience. In this series, we’ll be discussing different ways iOS developers can make their apps more accessible. First up, we’ll be talking about Dynamic Type. Dynamic Type is a feature on iOS that enables the app’s content to scale based on the user's
This tutorial will describe how to... install Rust, create a new project and manage dependencies, Set up a simple web server, and compile the app and deploy to a virtual server. I'll be working on Ubuntu 20.04 but most of the setup should be the same on macOS or a different flavor of Linux.
Our mobile devices and the apps that run on them have a unique insight into our lives. We use them for communication, entertainment, shopping, photography, navigation, and myriad other purposes. Consequently, apps have access to a great deal of information about our preferences, our contacts, where we go, what we buy, and who we are. As app developers, we need to be cognizant of the information being handled by our apps and to safeguard it accordingly. The protection of sensitive information is
We were recently transitioning a client to use Heroku build pipelines for their Next.js project that handles most business logic through an external API, including authentication and cookie handling. This pipeline uses Heroku's review apps [https://devcenter.heroku.com/articles/github-integration-review-apps] as well as separate instances for staging and production environments. The client handled their domains through AWS's Route 53 [https://aws.amazon.com/route53/] DNS service. Pointing thei
The following article was created from a 2021 CppCon talk given by Jonah Jolley. One of our clients has a software product that must comply with federal regulations. For them, they must submit technical documents to a governing body. However, in their case, the codebase didn’t accurately reflect what was documented. This led to an unmitigated, unsafe condition. To solve this issue, we used Clang LibASTMatchers to check the codebase and ensure they were indeed compliant. Why Compliance in Cod
Apple delivered several exciting and innovative new APIs for developers at WWDC this year. You might have heard or read about the SwiftUI and Combine revamp, but I want to address the new world of native WebSockets! The historically complicated connection protocol is now delivered as a first class citizen! Before we dive in on how awesome this is, it's important to have a basic understanding of Sockets and the road we've traveled to reach this point. What is a socket? By definition a socket is
Docker is a helpful tool for both developers and ops. It can simplify both the development of an application as well as deployment and management of it. In this post we are going to explore a common pitfall related to developing an application in Docker on the Mac and see what we can do to mitigate the issue and work as productively as possible. Developing in Docker Developing in Docker has a number of advantages over developing directly on your Mac. Before we begin, let’s remind ourselves of a