BY Elijah Carrington | CIO, NEARBY CREATIVE
A Learning Experience

Over the past few months I’ve been developing mobile apps for iOS and Android using Facebook’s React Native framework, and it’s been surprisingly fun (and a great learning experience)! Notice I wouldn’t say it’s easy—there is definitely a learning curve in the beginning past initial repo set up and project initialization. At Nearby Creative, we have seen success in developing education- and social-based applications from scratch, starting with an agile design phase and moving swiftly into front-end development and back-end engineering.

If you would have asked me to develop an app from scratch (by myself) two years ago, I would have been excited to do the design work, but a bit lost on development and deployment. I wouldn’t have had a clue on best practices for connecting API endpoints, or even how to write them; I wouldn’t have initially followed MVC patterns until I was better versed in them; I would have wondered how to package the app for deployment. However, the biggest dilemma would have spawned from having to do the work twice over for both iOS and Android. If only there was a framework for that... 

After all of the trials and tribulations, I can say that I am much more comfortable in a mobile development environment. I’ve gone from having little experience in web-based JS to being able to write class-level logic, maintain an MVC pattern with custom API interfaces, introduce application-level states with Redux, deploy apps simultaneously for both app stores via React Native, and style components according to spec (which I actually find the most fun since it’s reminiscent of CSS). Developers have a love-hate relationship with JS, but once I overcame the learning curve, things were easier.

My experience with Php is a similar story, but now I feel more equipped to create coherent classes and work with databases using Laravel’s framework and the Eloquent ORM. I can better navigate through the endless maze that is AWS to spin up new RDS and EC2 instances. I would like to thank StackOverflow for this newfound knowledge. 

Developing in React Native
Developing in React Native
Building an Understanding

The biggest advantage to getting to where I am now was having access to senior engineers who really understand their craft. In many cases, figuring out what the root issue is will help uncover the search terms needed to find the solution. Whether that’s from stack tracing, setting breakpoints, or logging out errors, I’ve found that a few times I was searching for the wrong thing. But most of the time, I was really just missing a fundamental understanding of the issue. That’s where having smart people to fall back on makes a world of difference. 

I believe that engineering is all about problem solving; how do you apply what you know to the task at hand, even if there could potentially be a mismatch in what you were trained for? What’s most interesting to me is how I can ask a question and there are always a few ways to achieve what I’m looking to do. Mobile development is a similar beast to most software development, it requires patience and a baseline understanding of programming fundamentals. 

App Evolution and Next Steps

The learning and understanding I’ve undertaken are related to what I’ve seen from apps and where I think they are heading. What I find fascinating is how prevalent smartphones and apps have become in the past two decades. Apps have been on-trend for a while now, ever since the introduction of third-party applications to Apple’s iOS environment back in 2008 with iOS 2.0. There were apps before then, but we don’t talk about those.

Coming from a background in design and website development, I’ve found that creating apps from scratch is not unfamiliar from spinning up a website; you will need all of the basic building blocks such as a database, infrastructure, code, and an audience. However, the two primary differences between websites and apps at this point in time are accessibility and cost to produce. 

With apps, there is an unparalleled opportunity to provide value to people in all walks of life, in all situations, all of the time. People browse, communicate, share, and distract themselves with apps whether they are on the go or lounging at home. There are nearly 3.5B worldwide smartphone users according to Statista. In the U.S., 90% of time spent on smartphones is within apps, which makes them a necessity for modern businesses. What I feel great about is being at the intersection of design and development of mobile apps, as they aren’t going anywhere anytime soon. But that leads me to the primary differentiator between websites and apps in 2020: price. 

Apps are at the stage now that websites were back in the 90s in terms of cost to create and support, because the tipping point of ubiquity has not been met with technological advancements. We are nearing a turning point of commoditization of mobile apps, but React Native isn’t the answer. If a Squarespace-like service could put app creation in the hands of the masses, then we would be looking at a turning point for how apps are produced. I could see something like this being available in the next few years, depending on roadblocks, restrictions, and technological synergies between the two leading platforms.

Until then, businesses need consultants who fully understand what it takes to design, develop, and deploy mobile apps, and I’m happy to be one of them.