[SWIFT] Until you publish the app on the App Store by yourself

Introduction

I would like to look back on what I did and what was difficult before I published the iOS app on the App Store. I hope it will be helpful for those who want to challenge iOS application development from now on.

Self-introduction

I am self-taught and self-taught in programming. From the end of February to the summer of 2020, I was studying web application development.

Introduction article of the created application ↓ I made a SPA with Rails + Nuxt.js for half a year of self-study, so please take a look

I got a qualification in the fall. I started learning iOS app development from the end of October. By the end of December, we were able to publish two apps on the App Store, so I would like to introduce them.

App introduction

Before looking back in chronological order from learning to development and application, let's briefly introduce the app.

The first one

The first is " tag memo ". It is a simple notepad application that can be tagged and managed.

AppStore Repository new_iphone12.001.jpeg

Production started on November 7th and was released on the 17th of the same month.

The second

The second is " Study Level ". It is a learning habit support app that raises the level when you record your daily study time.

AppStore Untitled.png iphone12_keynote_StudyLevel.001.jpeg

This is a remake of the iOS version of the web application for which the introductory article is written below. Six months of self-study inexperienced made SPA with Rails + Nuxt.js, so please take a look

Development started on November 17th and was released on December 29th.

Looking back in chronological order

First of all learning

Looking back on Twitter, it seems that I started learning from October 20th.

Main resources used

-Introduction to Swift Practice

First of all, I wanted to learn the basics of Swift, so I bought this book at the beginning. Unlike the usual under-explained beginner's books, the basics were explained in detail. In the second half, practical contents such as "what kind of situation is useful" were explained, and there was no doubt about where to use it after learning. There is also a chapter on "Linking with Web Services", which was very useful when developing "Study Level" that frequently communicates with APIs.

-Introduction to Swift UI Practice

Both of the apps I introduced were developed using the Swift UI. It explained in detail from the basic idea of ​​SwiftUI to the reference contents. It even describes how to use UIKit parts in SwiftUI, and even explains how to cover what you can't do with SwiftUI. I read it over and over again during development.

How much time to spend on input

I started developing apps in less than three weeks after I started learning. (About 5 hours a day on average) Looking back, I feel like I've spent a little too much time. After all, it doesn't remain in my mind unless I actually write the code, and I felt that there was no point in trying to incorporate practical knowledge even though I couldn't output even the basics. I think it's efficient to learn lightly at first and then re-learn what you wondered during development.

Start developing memo app

For the time being, a simple app is fine, so I'd like to publish it on the App Store! I started development with enthusiasm. Even simple and few features are available on the App Store, so you can make your own! That's why I decided to make a memo app. (I'm sorry for the reason)

I used Realm to save the memo. I learned it from the beginning of development, but I didn't have any problems because I didn't do advanced things.

Development went smoothly and we were able to complete it in about a week.

Apply

Applying to the App Store has many steps and is difficult. (Especially at the beginning) If you search for "App Store application", you will find many articles that explain the procedure, so I proceeded with the preparation while referring to it.

I hadn't done much to process the image, so I had a little trouble creating icons and screenshots (images to introduce the app). Screenshots are created with Keynote.

Helpful article ↓

Until you register, apply for, and publish your iOS app Create your own screenshots for App Store submission for free

Wait for the result

When I read the article about the application, I was afraid that many people were rejected due to lack of function. However, around noon the next day, I received a notification of passing the examination, and I was out of tune.

It's a simple app, but I was impressed when I saw it published on the App Store.

Start developing a learning management app

Since I was creating a web app, I wanted to create a native app version, so I decided to start creating it. The API is the same as the web application. I added some features for the iOS version. Since there were many parts that only needed to communicate with the API and display it on the screen, it proceeded more smoothly than expected.

It was hard

--Memory management

Since the icon image is displayed for each post, the amount of images displayed on the screen is large, causing memory shortage. The solution was to compress the image to reduce its size. In addition, image data is now cached using Realm to reduce traffic.

--Cannot be implemented in Swift UI

It's still a new framework, so some features aren't supported. However, since the parts of UIKit can be used in SwiftUI, there was nothing that could not be implemented at all.

Second application

It was the second time, so the preparation went smoothly. I'm more focused than the memo app, so I decided to improve the completeness of the icons and screenshots. Last time, I was skipping the icon, but this time I put a little effort into it.

Referenced article ↓

No need for Illustrator or Photoshop! Let's make an app icon with Cacoo

Experience reject

It was rejected. However, it was supposed. This is because it is necessary to add a "block / report function" to apps that have a user posting function. I was thinking about how to implement it first, so I immediately implemented and tested it and reapplied on the same day.

Application passes

I was wondering what to do if I was told that it was still insufficient, but I was sad. It was successfully published to the App Store, and I was able to confirm that the app was running.

Summary / Reflection

--About ideas

The memo app is saturated, and the learning management app is like a reprint of the web app version, so I feel that it lacks originality. I want to develop a more practical app, so I wanted to value the planning stage.

--About self-study

I often feel the limits of self-study. It is mentally difficult to have to solve all the problems by yourself. It would be nice to investigate and come up with a solution, but I'm desperate when I encounter an error for which I have no idea what the cause is. Well, the app has been completed somehow, so I managed to solve it, but I think that study efficiency is poor.

--About development rules

As I wrote in Web application version article, I felt that it was difficult to thoroughly enforce the rules if I was developing by myself. Particle size, development order, coding rules, etc. when committing or branching can be easily twisted at your own discretion and mood, so it tends to get messy. I felt that the rules should be considered at the initial stage.

About the future

If you have a good idea, I would like to make another app. For the time being, this month is the production of basic information, so I will do my best to tighten my mind. I hope to receive the application information for April, so I will continue to study there as well. I also want to learn how to develop apps using UIKit and StoryBord. I can't find a learning resource that looks good, so if you know it, I'd appreciate it if you could comment.

Recommended Posts

Until you publish the app on the App Store by yourself
Publish the app made with ruby on rails
Learn RSpec with Everyday Rails. Until you bundle install the sample app.
I tried to publish the reflex measurement application on the Google Play store
Until you run CuPy (v11.1) on Ubuntu 20.04
Until you run apache on ubuntu on docker
Short URL to the App Store developer page
My thoughts on the future [Gradle app version ①]
[Ruby on Rails] Until the introduction of RSpec
The basics of the App Store "automatic renewal subscription"
Ssh login to the app server on heroku
Tips for using the Spotify app on Ubuntu
Create an app by specifying the Rails version
Until you run the Apache Velocity sample code
Calculated game app released on Google play store