Building a modular iOS app

by

At Grio, we’re often asked to improve our clients’ existing web and mobile apps — fixing problems, adding features, etc. — but many of our most interesting and exciting projects involve building a brand-new app entirely from scratch. I’ve had that opportunity on a recent project, which means that my colleagues and I have been thinking through some of the foundational decisions that can really only be made when you’re starting fresh. One of those decisions is monolithic vs. modular. 

You Need a Supervisor

by

Several of our folks recently attended ElixerConf in Colorado, where Grio’s John Palgut gave a lightning talk on protecting your app from crashes by using a Supervisor – enjoy!

 

Test, Never Trust: Dealing with external services when using Elixir and Phoenix

by

In his short story Thin Cities 3, author Italo Calvino describes a city reduced to its plumbing — a network of pipes, stripped of the streets, walls, and floors that would ordinarily conceal them. I like to picture this “thin city” when I’m testing software; diving beneath the superficial layers to probe the essential connections that keep information and experiences flowing. 

Fostering early collaboration between development and design

by

User-friendly software doesn’t happen by accident — the best products are designed intentionally, thoughtfully, and thoroughly before implementation begins. However, that doesn’t mean that developers shouldn’t play a role in the early stages of a project. In this post, I’ll talk about why you should bring your developers into design discussions and reviews, and recap a successful design-development collaboration on one of Grio’s recent client projects. 

Streamlining mobile development with CI and CD

by

Continuous integration (CI)  and continuous delivery (CD) have significantly improved both my productivity as a developer and my team’s ability to execute smoothly and efficiently on a variety of projects. In this post, I’ll explain how CI and CD work, talk a bit about the benefits of these practices, and walk through an example that illustrates how to set up your own CI/CD systems. 

Measuring software quality

by

The word “quality” first appeared in the English language around 1300. Technically, “quality” is a neutral term, referring to the character or nature — good, bad, or otherwise — of a person, place, or thing. However, when we use this word today, we’re often implicitly pointing to high quality. Most modern definitions of “quality” indicate that the term is connected to attributes like lack of risk, ease of trust, superiority to competition, and high value.