Code

Mobile Development: How to Get Started and Grow

Mobile Development: How to Get Started and Grow

Free Python course ➞ Mini-course for beginners and experienced coders. 4 cool projects in the portfolio, live communication with the speaker. Click here to learn more about the course.

Learn More

In this interview, Alexander Murzanaev, CEO of AppCraft, shares his perspective and experience in mobile app development. He discusses key industry trends and the strategies that help AppCraft remain competitive. Murzanaev emphasizes the importance of innovative technologies and adapting to changing user needs. His insights can be useful for both novice developers and experienced professionals looking to improve their skills and increase their efficiency.

  • about three global trends for the next couple of years;
  • what candidates AppCraft doesn’t consider when looking for developers;
  • is it really possible to create and launch a mobile app on your own;
  • about the main mistakes novice developers make;
  • why it’s hard for a manager to move on from a specialist role;
  • what fascinated him about programming;
  • why he stopped working on games;
  • and also gives five tips for mobile startups.

Modern trends are constantly changing and depend on many factors, including cultural, economic, and technological aspects. Although some trends may be global, their manifestation and perception vary across different countries and regions. For example, in fashion, certain styles may be popular in Europe, while in Asia the emphasis is on completely different design elements. There's a growing interest in sustainable and environmentally friendly solutions in technology, reflecting global trends. However, the level of adoption and implementation can vary significantly depending on local conditions and consumer preferences. Therefore, it's important to consider the context in which current trends are unfolding to better understand their impact and significance globally. General trends in mobile app development persist across all regions. Users expect apps to be convenient, smart, fast, and intuitive. Differences between regions are most often due to regulatory issues rather than the diversity of consumer needs. App development must take these nuances into account to effectively meet user demands and comply with local requirements. Revolut mobile banking has been actively developing in Europe for several years now. Users can link their bank account to an app that helps them effectively manage their finances, from savings to investments. Revolut provides the ability to control their cash flow, allowing integration with various services of their choice. However, in other regions where legislation differs, such financial products are not yet available, although the demand for them remains high.

Modern global trends can be identified in three key areas. The first is related to sustainable development and environmental responsibility. More and more people and companies recognize the importance of preserving the environment and switching to environmentally friendly technologies. The second area is digitalization and the implementation of new technologies. The rapid growth of the IT sector and the introduction of artificial intelligence are changing traditional business models and lifestyles. The third area concerns globalization and intercultural interaction. The interconnection between different countries and cultures is becoming increasingly significant, opening up new opportunities for collaboration and the exchange of ideas. These trends are shaping the future and affecting the daily lives of people around the world.

  • The development of communication between people in a variety of forms.
  • Smart assistants that save users time, free them up, and eliminate many routine tasks. This includes one-click travel planning, money-saving tips, music and movie selection, and so on.
  • Tech For Good. Traditionally, technology is contrasted with nature and the natural. Now, especially in Europe, many are breaking this stereotype – helping the environment, people, and relationships with their projects.

Trends in various fields change approximately every two to three years. Today, three main trends that define the current era emerged about a year ago. Over the next few years, we will see developments in these areas.

Augmented and virtual reality, blockchain, and other promising technologies that previously generated great interest are currently not seeing significant advances. For the mass consumer, these areas offer no practical value, unlike machine learning, which demonstrates real effectiveness. Machine learning provides "smart" solutions and is actively used in image recognition, video, and photo processing. Other technologies are still in the research and development phase in lab conditions.

Developers should focus on technologies and solutions that can be used today. This will allow them to effectively solve current problems and increase the competitiveness of their projects. By focusing on current tools and methodologies, developers will be able to more quickly adapt to changes in the industry and meet user requirements.

"It's important to experience everything yourself from start to finish."

A developer wishing to join our team must possess certain skills and knowledge. Firstly, a confident proficiency in programming languages ​​such as JavaScript, Python, or Java is required, depending on the specifics of the projects. Experience with frameworks and libraries such as React, Angular, or Django is also essential.

In addition to programming languages, the developer should be familiar with version control tools, such as Git, and database management systems, such as MySQL or MongoDB. Knowledge of API development and working with RESTful services will be an added advantage.

Experience with Agile and Scrum methodologies is equally important, as this allows for effective team collaboration and quick adaptation to changes. Testing and code quality assurance skills are also valued, which contribute to the creation of reliable and scalable applications.

Finally, a successful candidate should possess not only technical skills but also the ability to work in a team, be open to learning, and be ready to share their knowledge.

A mobile developer should first and foremost be passionate about smartphones and then master programming languages, such as Swift and Kotlin. A passion for mobile devices and an understanding of their functionality allow for the creation of high-quality applications that meet user needs. Knowledge of modern technologies and trends in mobile development plays a key role in a successful developer career.

The primary requirement for our employees is a genuine passion for their craft. It's hard to imagine a woodcarver without a single wooden figurine, or a musician without creating something for themselves. The same applies to programmers: a good specialist always has at least one personal project. This isn't just an obligation, but a natural professional need. Without a sincere desire, curiosity, and a drive to discover new things, it's impossible to create a high-quality and unique product. Passion for the profession is the driving factor that makes the work not only professional but also inspiring.

We don't review frontend specialist resumes without personal projects involving complex layout and animation, even if the candidate has impressive experience. Practical work is a key criterion for assessing the qualifications of a frontend development specialist.

We will gradually train you in all the intricacies of our internal processes, technologies, and team rules. Other progressive companies are likely doing the same, as it's easy to train someone who's passionate about their field.

Do you need to create original texts or develop projects from start to finish?

Working prototypes are an essential element of development. Ideally, having finished projects, even small ones, significantly simplifies the process and increases confidence in the end result. Such projects help you better understand the functionality and design, and also allow you to test ideas in practice.

Creating an app on your own and successfully launching it on the market is a completely realistic task. Many developers started their journey with solo projects, and some of them have achieved significant success. However, to do this, you need to consider several important aspects.

First, you need to define your app idea and conduct market research to ensure that your product will be in demand. Secondly, it's important to have the necessary technical skills or be willing to learn them. This includes programming, interface design, and marketing basics.

Furthermore, creating an app takes time and patience. Preparation, development, testing, and promotion are all stages that require serious effort. It's also worth considering that the app market is highly competitive, and standing out from the crowd of similar products can be difficult.

Don't forget the importance of user feedback, which will help you improve the app and adapt it to the needs of your audience. Therefore, creating an app alone is a challenge, but with the right approach and persistence, it is entirely achievable.

It's entirely possible. Furthermore, it's important to apply these ideas to your pet projects. Only then can you assess whether the results of your work are truly beneficial.

You need to go through the entire process yourself from start to finish. For example, if you've developed a truly impressive feature, it won't be popular if it's not clearly explained in a tutorial. Knowing how to create such tutorials is also crucial. If you lack experience in user interface development, it will be difficult to communicate with designers on the same level.

To achieve this goal, several key aspects must be considered. First, it is essential to define clear goals and objectives to be addressed. Then, develop a strategy that will include an action plan and the resources needed to implement the plan. It is also worth paying attention to analyzing the current situation and identifying potential risks. Equally important is assembling a team of professionals willing to contribute to the project. Finally, regular monitoring and progress evaluation will help promptly adjust the approach and achieve the desired results.

The full mobile app development cycle includes a consistent movement from analytics and marketing to cohort studies. Each stage of this process provides an opportunity to gain a deeper understanding of the specifics of mobile development, as well as acquire valuable knowledge and practical experience. Understanding each stage of development helps not only improve the quality of the final product but also adapt it to the needs of the target audience, which in turn contributes to successful promotion in the mobile app market.

If you can go through these steps independently, you will be welcomed and supported in any area.

Young and Green

Do startups often approach you with their ideas? What concepts do they propose most often?

Aggregators of dog restaurants and late-night gas stations for cars are becoming increasingly popular. They provide convenience and accessibility for pet owners and motorists. At the same time, large-scale social networks and video messengers continue to gain popularity, offering users new ways to communicate and interact. These platforms are changing the usual perception of services and interaction in the modern world.

Previously, many entrepreneurs sought to create Uber-like apps for their cities, and there were more than five such requests per week. Communication-related projects, including telemedicine, webinar organization, and other areas that focus on human interaction, are currently leading the way. This trend is actively discussed in analytical reports and is widely recognized across various industries. Beginners often require assistance adapting to new conditions and mastering the necessary skills. It is important to provide support in the form of information about available resources, training materials, and best practice recommendations. Beginners should consider groups and communities where they can ask questions and receive advice from more experienced participants. It is also useful to organize mentoring so that newcomers can receive personalized help and advice. It is important to create a friendly atmosphere conducive to the exchange of knowledge and experience. Supporting newcomers is a key element in the successful development of a community and increasing its activity. Evaluating a product idea includes analyzing its viability and identifying key risks. Young developers are often interested in ways to create a viral product, methods for increasing organic traffic, and effective newsbreaks for post-launch promotion. Proper assessment and strategy will help minimize risks and increase your chances of success.

We provide free consultations. The mobile app development market in Russia is in its infancy. Despite rapid progress, we still lag behind Western specialists in many criteria, including market analysis and marketing. In this environment, it is important to support each other, openly exchange information, and act with integrity.

Beginner developers often make a number of common mistakes that can hinder their learning and professional growth. One of the main mistakes is insufficient attention to programming fundamentals. Many rush into complex projects, ignoring important concepts such as data structures and algorithms. This can lead to problems writing efficient and optimized code.

Another common mistake is the lack of a systematic approach to development. Beginners often fail to plan their projects, which can lead to disorganized code and difficulties in subsequent maintenance and scaling. Attention should be paid to the architecture and structure of the code from the very beginning.

Also, beginning developers often neglect testing. It is important not only to write the code but also to check it for errors. Regular testing allows you to identify problems early and improve the quality of the product.

Furthermore, many beginners do not use version control systems. This makes it difficult to collaborate and track changes in the code. Mastering tools like Git will significantly simplify the development process and project management.

Finally, a lack of communication and sharing experiences with other developers can also be a problem. Participating in communities, forums, or groups can help beginners gain useful tips and learn about best practices. By avoiding these mistakes, beginning developers can accelerate their learning and improve the quality of their work.

The primary focus for a mobile developer is to focus on one aspect of development: code, interface, or promotion. However, it is important for the developer to have experience in all of these areas. This will allow them to consider all stages of product development holistically, ultimately leading to a higher-quality and more successful app. A variety of skills helps to better understand user needs and optimize product interactions, which is a key factor in mobile development.

The Finnish army has an interesting promotion rule: when an employee is promoted, they undergo a probationary period in a higher position. This allows them to gain a deeper understanding of the tasks facing management, as well as understand the priorities and responsibilities associated with the new role. This approach helps develop leadership skills and promotes more effective performance. Experience working at the level of one's superior provides an opportunity to better understand strategic goals and objectives, which ultimately impacts the success of the entire unit.

Developers face similar challenges. If you're a programmer and have never worked on app promotion, you may be wary of client requirements. It often feels like the client doesn't understand their needs, which negatively impacts your productivity. Understanding the client's goals and objectives is key to successful app promotion and improved team collaboration.

We also encountered various mistakes along the way. Often, these were flaws in project planning, which led to a mismatch between deadlines and expectations. Sometimes, a lack of communication within the team led to misunderstandings of tasks and goals. Incorrect choice of tools or technologies also impacted the outcome. These mistakes taught us the importance of thorough preparation, clear role assignment, and constant communication to achieve success.

The first apps we built seemed great to us, but in reality, they didn't meet market needs. Over time, we learned to analyze our products more deeply. A key step was realizing the need for a comprehensive approach: we began working with managers to study statistics, analyze user behavior while using the app, and track their task completion. This allowed us to better understand user needs and improve the quality of our products.

My personal mistakes: Like many managers, I found it difficult to let go of my specialist role. I was constantly tempted to step in and do everything my way, just the way I imagined it. It was difficult to entrust tasks to others, as I felt they couldn't handle them as well as I could. However, this was a misperception caused by a lack of management skills. It's important to understand that delegation and trust in the team are key aspects of effective leadership. Proper management allows you not only to develop employees but also to achieve better results.

You are surrounded by talented and experienced professionals who can do their job even better than you. If this is not the case, then your company has problems with the organization of work processes. Implementing the idea of ​​"working not in the company, but on the company" is a more complex task than it may seem at first glance. It is important to create an atmosphere in which every employee strives for self-improvement and contribution to the common cause, which will lead to increased efficiency and competitiveness of the business.

From games to mobile applications

According to the information on your website, AppCraft was founded in 2008. What were the first steps in the company's development?

In 2007, I bought my first iPhone. At that time, the app store did not yet exist, and there were not many pre-installed programs, but the ability to interact with the device was very interesting. The large screen, user-friendly interface, and high speed of operation instilled hope for a bright future for technology. A year later, immediately after the launch, I ordered Android Dev Phone 1.

I developed the first application that measures the height of a smartphone fall. An accelerometer and a timer were used for calculations. Users could find out the height of a high-rise building, although the phone probably would not have survived such a fall. The app worked in any environment, be it the Moon or the Death Star, thanks to Google's programmers, who integrated many gravitational constants into Android, including values ​​for fictional objects.

My next passion was video games. I began creating various game concepts. One of them was a game about a snowball that had to be rolled by blowing into the phone's microphone. The difficulty increased as the snowball grew larger: it became increasingly difficult to move, requiring the player to exert maximum effort. In 2009, I developed a fighting game concept, which later inspired a game similar to Pokemon Go. In this game, players fight monsters by squeezing the phone in their fist and punching the air. These ideas allowed me to gain a deeper understanding of the game development process and identify interesting user interaction mechanics.

Rare advertising in games brought in between 30,000 and 80,000 rubles from each project. This allowed me to support the team and release about 20 apps to the market. However, game development is a complex and volatile process. Many experienced developers have achieved success with only one or two profitable projects. For example, Rovio, creators of Angry Birds, and Supercell, creators of Clash of Clans, continue to develop only their core products. Any deviation from a successful formula often leads to failure.

A game capable of generating significant revenue is a rare occurrence, even when working with major publishers in the gaming industry. In a highly competitive market, developers must consider many factors to achieve financial success. A high-quality game should combine engaging gameplay, a well-thought-out storyline, and attractive graphics. Furthermore, it is important to choose the right monetization strategy and actively promote the product to attract the target audience.

Have games lost their relevance?

Social networks, instant messengers, online stores, and utilities have a long lifespan because they provide real value to users. Useful applications remain on devices for many years, which makes them in demand. That's why I strive to develop solutions that are not only relevant, but also truly useful for users in their everyday lives.

I remember sending three hundred letters to various companies, detailing the benefits of creating my own mobile app. Only two of them responded. Some simply inquired about the cost, while we managed to sign a contract with others. So, our first client was a sushi restaurant chain in 2012. This experience showed how important it is to correctly convey the value of a mobile application for a business and its impact on customer acquisition.

"A person is good at what he does"

We previously discussed a passion for development. How did you become interested in programming?

In the late nineties, my parents decided to buy a computer for my brother and me. At first, they bought a keyboard, mouse, and monitor, and the system unit only appeared a year later. Back when we didn't have a basic device, I enjoyed simply typing. I especially enjoyed typing the words "programming" and "vacuole." The letters in these words are conveniently arranged, and typing them was a true pleasure. Try it yourself.

I enjoyed doing a variety of tasks on the computer. I worked with documents, played games, explored settings, and coded—whatever came to mind. I even tried writing algorithms on paper, and that was also enjoyable. At the time, I didn't think about why exactly it fascinated me, but now I realize that the process of creating and solving problems has always been interesting to me.

I realized that my passion for programming stems from the exciting process of turning ideas into reality. When you formulate an idea, write it down, and it begins to function on its own, it evokes genuine excitement. Programming is similar to invention, but it is faster, more flexible, and unconstrained by the physical world. This unique process allows you to generate and implement ideas, opening up limitless possibilities for creativity and innovation.

Books, teachers, and courses play an important role in the process of learning and self-development. Books provide knowledge and deepen understanding of various topics, allowing you to explore the material independently at your own pace. Teachers, in turn, can provide personalized guidance and explain complex concepts, as well as inspire further development. Courses, on the other hand, provide structured learning and access to relevant information, often in an interactive format. All these resources together contribute to a deeper acquisition of knowledge and skills.

I studied a variety of materials: instructions, articles, books by classics such as Stroustrup, Ritchie, and Knuth, as well as game development guides and much more. I usually began with practical attempts to implement my ideas myself. I opened textbooks only when I encountered difficulties and spent too much time overcoming them. Perhaps this approach does not always seem rational, but if you enjoy the process of learning itself, you will definitely benefit from it.

In the field of education, I am a practitioner. I am convinced that a true master is capable of doing their job successfully. For example, such basic skills as walking, speaking, and eating initially came with difficulty to us. However, we did not stop and continued to try, and it was precisely through this effort that these actions became simple and natural for us. Practice is the key to mastering any skill, and this is especially important in education.

Attending conferences can teach you certain skills, such as finding comfortable seats and quickly accessing food during breaks. However, if you limit yourself to this, you won't achieve significant progress in your professional skills. To develop and deepen your knowledge, you need to actively participate in discussions, ask questions, and interact with experts in your field. Only then can you get the most out of events and significantly advance your career.

This statement applies to everything: the more you read, the better your reading skills will develop. By taking courses, you improve your reading skills. By programming, you become a more competent programmer. Therefore, first of all, we write code, work on design, test, and immerse ourselves in the roles of users. After that, it is important to study current materials on what is happening in the world of mobile app development to stay abreast of new trends and technologies.

We recommend focusing on the theoretical aspects related to your area of ​​interest. Reading professional literature and articles will help deepen your knowledge and understanding of the subject. It's also helpful to participate in topical seminars and webinars where you can share experiences with other professionals. Don't forget the importance of feedback: communicating with mentors and colleagues will help you identify your strengths and weaknesses. Record your successes and achievements so you can track your progress and find new avenues for improvement. Maintain active participation in communities and forums where current issues and trends in your field are discussed. This will help you stay abreast of innovations and develop professionally. Choosing a specific book or resource can be a daunting task. If you want to start learning, simply start with what interests you. Once you take the first step, new questions will naturally arise. These questions will become the starting point for further in-depth study and expansion of your knowledge. For those who have already taken the first steps in creating a mobile startup, it is worth paying attention to several key aspects. First, it is important to thoroughly research the market and understand the target audience. Understanding user needs will help you create a product that will truly be in demand. Secondly, it's important to focus on the quality of your app. A good user experience and stable operation are the keys to success. Don't forget about marketing. Effective promotion strategies will help attract attention to your startup. It's also important to be prepared for change and adaptation along the way. Successful startups often adapt their ideas and approaches based on user feedback. Finally, don't underestimate the importance of your team. A strong team with diverse skills is key to successfully implementing ideas and achieving your goals.

First, close the deal today. No matter what product you're talking about, find a potential customer and present your proposal to them. You can hold a presentation, announce the imminent completion of development, or simply ask them for their opinion on your product. If you can't do this in most cases, your product is probably not ready for the market yet.

Create a minimum viable product (MVP), investing minimal resources in its development. Attract your first users, and then gradually improve and develop your service based on their feedback and needs. This approach will allow you to effectively test ideas and minimize risks.

When solving a problem, it is important to consider the situation in a broader context and not limit yourself to technological aspects alone. Technology is only one component, and it does not always determine the outcome. For the client, it does not matter how you deliver the solution—whether it is a mobile app, a website, printed material, or a phone service. The main thing is that the result meets their needs and expectations.

You should not seek funding based on an idea alone. An idea in itself has no value. The key is its implementation. Large corporations such as Facebook, Microsoft, and Amazon invest millions in small teams not because of an existing product, but because of the potential of the people capable of creating and improving this product. Initially, it is important to demonstrate that you can attract and retain at least ten users; further success will be reflected in the numbers.

Be honest with yourself. Admitting that your idea is not producing results can be difficult. However, it is important to change your point of view and not ignore the facts. Don't convince yourself that the situation will soon change. Face the facts and assess reality. Strive for persistence over stubbornness, as it's a fine line that can determine your success.

Also study:

  • Math for Juniors: What to Review Before a Data Science Interview
  • iOS Developer: Salary, Career, Where to Study, Where to Work
  • Writing a Simple Avatar Editor in JavaScript