With the miniaturisation of devices, increasing their computing power and battery life, and increasingly cheaper access to mobile internet, a smartphone or/and a tablet have become an indispensable tool for both leisure and work. This tool, however, would not be complete without applications.
I remember the first mobile application boom 8 years ago like it was yesterday. Every company and every online platform wanted to have their own app. The number of available submissions was growing in the online stores of the main players: Apple and Google.
At the time, I wanted to know a bit more about that field. Developing mobile applications seemed like an interesting alternative to what I was doing back then, and it was quite different from creating web platforms.
The first steps
I’ve taken on the now archaic and forgotten technology, Adobe AIR for my first adventure with creating a mobile app. The idea seemed interesting – using a few commands I’ve been able to pack the Flash game my team had worked on for a few months into an app and start it on an Android phone. This way, we were able to kill two birds with one stone – creating browser games and increasing our reach by sharing games in the app stores. Without an additional developer team, without learning how to code in Java, ObjectiveC or Swift.
Later on, I was also taken with the idea of developing one source code for many different platforms and despite the fact I stopped programming games and went back to developing web services, I still missed this approach. I was also lacking good and reliable tools.
I didn’t want to specialise in developing apps in native languages. I wanted to wait for a better moment.
The change of mind
The very first sign that it may come was the PhoneGap technology and then Cordova. This is when I became interested in using web methods to create an app. Coding mobile devices was gradually becoming more accessible for developers and as I saw it back then, it was less and less about the industry secrets available exclusively to insiders.
These technologies had downsides as well. The performance of these applications was below what native applications could achieve. There were also issues related to using native components and the security of the apps. After analysing the landscape, I decided that it was still not for the right moment.
And then, around 2017, I heard about React Native for the first time. That’s when I started my programming journey using this technology on the web and I really liked programming in it. My thoughts and structures were flowing into IDE. That’s why, when one of my teammates mentioned that Facebook was developing a technology, which allows you to share your thoughts using React, I instantly became interested and decided to pursue it.
To me, it was very important that I was now able to get rid of the approach that I was already familiar with after working with Cordova and Electrona, where my main task was to hide the webpage.
I was very impressed when two years ago at a conference in my hometown, Wroclaw, Microsoft developers shared how a significant part of the Office bundle was created in React Native. Microsoft itself decided to partner with Facebook to create code for multiple platforms using this technology. It was also opened for Windows and MacOS.
Knowledge accessibility, the community openness, the abundance of libraries and opening Facebook to an open-source community have all been catalysts that made me switch from web React to React Native. I still stand by this decision. My experience with React allowed me to dig in quickly and just develop software right from the start.
Spyrosoft was also one key to my involvement with this technology. We started working on more and more projects where one code was required for multiple platforms. We began building our competencies in this area and we’re still sharing our knowledge both in and outside the company, during conferences and meetups.
The applications we’ve been creating are often very large. Our customers challenge us and give us interesting technological issues to resolve. One of these issues has been creating a significant number of applications that need to be available on Android, iOS and Windows.
Thanks to this approach, our specialists can grow their skills and try out innovative solutions. Each project is a challenge and we’re often faced with requirements we haven’t encountered before. As far as I’m aware, we’re doing great in this field.
Recently, we had the idea to create Spyrosoft React Native Academy and open our company up to new people. We wanted to share our knowledge and train people like me who are currently working in web React. The goal of the Spyrosoft Academy is to support people in exploring React Native as a technology, showing them how their future project workflow may look and sharing my practical knowledge which cannot be achieved by just reading the documentation. It comes from my experience in solving technical issues related to React Native software development.
During this training, we will be using the latest versions of the libraries, writing using a hook based approach and TypeScript – a dialect that’s employed in almost all our web and React Native projects. We really want the code created by us to be the finest, error-free, and easy to develop by other team members.
I lead the course and its format is similar to university classes. I recorded a series of video lectures, but we will be also meeting as a group and having consultations. Everyone will get the chance to create their own application. As with studying at a university, there will also be a lot of individual, self paced learning. From my side, you’ll be getting support, continuous advice and code reviews.
I would love to have everyone who graduated from the Academy to be:
- Familiar with the ins and outs of React Native.
- Experienced in resolving basic issues related to this technology.
- Equipped with the practical skills necessary for working on a commercial project, and knowledgeable about how to develop these skills on their own.
It would be also fantastic if the trainees could join one of our developer teams and be able to grow by learning from the people already employed at Spyrosoft. From my perspective, every one of these people is a specialist and you’ll not only learn from them, but also enjoy working in a friendly team and resolving challenging yet interesting technical issues.
I believe that this training angle will help people, who, just like me, are keen to learn more about developing native mobile apps but don’t want to limit themselves to a singular native environment.