banner
Leo

Leo的恒河沙

一个活跃于在珠三角和长三角的商业顾问/跨境电商专家/投资人/技术宅/骑行爱好者/两条边牧及一堆小野猫的王/已婚;欢迎订阅,日常更新经过我筛选的适合精读的文章,横跨商业经济情感技术等板块,总之就是我感兴趣的一切

2024-03-06 - Annual Essay - AI, No Background, My First Application - Minority

Annual Essay | AI, No Foundation, My First Application - Minority#

#Omnivore

Conflict of Interest Statement: The author has a direct interest in the products mentioned in the article (developer, own products, etc.)

"This article participates in the 2023 annual essay activity. My keyword for 2023 is: creation."

2023 is a special year.

This year, I gathered the courage to resign, I started learning programming from scratch, and I created my first application: Cush Budget. My life seems to have derailed, heading towards an unknown place. There have been so many joys and growth, hesitations and wanderings, which together form my keyword for 2023: creation.

I know many people in front of the screen also want to create a wonderful application, but are hindered by the difficulties of programming, only scratching the surface. So let me write down my experiences from this year, sharing how someone with no foundation like me can create little by little with the help of AI. If I can do it, I believe you can too.

Let's get started!

image

November - December: The Path of Programming#

When I first started developing, I learned from the Minority "iOS Independent Development Guide."

This tutorial is aimed at users with no foundation, systematically introducing what programming is and how to create applications step by step.

I studied 2-3 sections every day for about half a month. At first, I took notes seriously on paper and completed the exercises at the end of each chapter. But as I reached the Swift section, it became increasingly difficult, especially the 2.5 structure part, which felt like I had a reading barrier. The code also increased, and taking notes on paper was really overwhelming. Later, I jumped directly to the SwiftUI section, skimmed through it, and started hands-on application development.

image

My notes taken on paper

My application is roughly divided into two parts: data algorithms and interface interactions.

Data algorithms refer to databases, storing and modifying data, calling data, etc. This part usually uses Swift, which is relatively difficult and tedious. Interface interactions refer to displaying data, user interactions, etc. This part uses SwiftUI, which is like playing with building blocks, making it easier to get started.

image

At first, I needed to build my own database. According to the tutorial, I needed to use JSON and a bunch of functions for adding, deleting, reading, and modifying data, which was quite daunting. At that time, AI was very popular, so I decided to give it a try and bought a US gift card to activate GPT-4. Then I directly asked AI:

I am developing a Swift application. Here is a teaching code, please refer to this code to provide my database code. The data format is XXX, and please note: YYY (my special requirements).

I have to say, this thing is really amazing. It directly provided complete, well-functioning code. Not only did it adopt the framework of the teaching code, but it also fulfilled my custom requirements. This was the first time I felt the magic of AI.

I no longer needed to know how to write code; as long as I could understand and run it, the difficulty of programming was greatly reduced.

image

With the database in place, I needed to call data for display. At first, I directly asked AI:

This is my database; please generate a function that can calculate the total expenditure for the past seven days.

But since my application is a budgeting software, it involves many functions, and copying and pasting the database every time was too cumbersome, so I created a GPT that directly preset the database Promote, so that each time I only needed to tell it what function I wanted to generate.

This kind of repetitive work is really suitable for presetting Promote GPTs.

image

GPT 3.5 can also preset Promote

After designing the data algorithms, it was time to build the interface.

There are many programming languages in this area, such as SwiftUI, UIKit, and even Flutter. At first, I did some research and saw developers complaining about SwiftUI, debating whether to use it. Later, I tried learning it and fell in love with SwiftUI.

SwiftUI is like building blocks. If you want two lines of text, you can simply drag and drop two Text views; it's very easy to get started. The official documentation also has many preset components, such as the effect of scrolling to select time in an alarm clock, which can be implemented in SwiftUI by directly calling the Picker component with just a few lines of code. Writing it is really beautiful and relieving, which made me fall in love with programming for the first time.

image

A few lines of code can achieve the effect on the right

Before starting programming, I had already designed all the pages in Figma. So the next step was to work on each page one by one.

First, most pages are just basic element stacking, which is not difficult.

I downloaded some SwiftUI applications, such as Swifter, Interactful, Libraried, Fabula, etc. They are like a small dictionary of SwiftUI effects. If I wanted a certain effect, I would look for the source code and send it to GPT, which made writing very fast.

Here’s a small GPT tip.

When searching for solutions online, I often see many codes that are related to the problem but hard to understand, so I would cut them out and ask GPT: Do you find any inspiration in this code? No matter how messy or irrelevant it is, it can always find the core point and imitate it. Many of my problems were solved this way.

image

Interactful: You can directly copy the source code

But as the number of pages and codes increased, the data flow became more complex.

Previously, I would send all the code to GPT, and GPT could always read the key parts. But later, a single page could have thousands of lines of code, and sending it to GPT exceeded the character limit. So when I was about one-third through development, I spent a few days learning code organization, commenting standards, etc., and packaged all commonly used modules into reusable components. Later, whenever I asked GPT, I could quickly send the core points, which greatly improved efficiency. I was also surprised to find that sometimes the answers given by GPT would also improve.

Clarifying the question is also very useful when communicating with AI.

image

Using //MARK: - to organize code is very relieving

GPT is not always reliable. Sometimes it provides particularly complex solutions.

In my design, I wanted the comment box to be swiped left and right to close, which would feel very natural. But GPT suggested that I detect user swipe behavior, involving very complex code with UIKit and even Objective-C, resulting in a poor implementation.

I vaguely felt it was unreliable, so I thought carefully about why I subconsciously came up with the left-right swipe solution. Later, I realized it stemmed from the iPhone desktop's left-right swipe experience, which is actually the preset component TabView in SwiftUI. I then asked GPT to implement it using TabView, and a few lines of code solved the problem.

So if the solution provided by GPT is too complex, it might be worth optimizing your requirements.

image

Final effect display

There was another time when I encountered a tricky bug: the application would freeze whenever a decimal point was entered.

After asking GPT, it always provided solutions, but none solved the problem. I then learned about breakpoint testing and investigated for a long time, finally discovering that it was a regional issue. My phone was set to the French region, which uses a comma (,) as a decimal point. So I made a check before passing the data, which resolved the issue.

This also taught me a lesson: I shouldn't rely too much on AI; I need to strengthen my programming skills.

If I didn't know programming, I would have to keep asking AI, unable to even discern whether the solutions were reliable. But after understanding programming, I could find very simple solutions and better troubleshoot problems myself. It’s like AI is my employee, and my skill level determines its capabilities.

image

Using the code on the left to filter out comma decimal points before storage can avoid crash bugs

Of course, besides improving my own abilities, there's a simple way to solve problems: seek external help.

Generally, if GPT-4 can't solve a problem, I will ask BingAI, Board, and Pi again, and sometimes they can miraculously resolve it. Some problems have obvious solutions online, such as how to set the navigation title to a rounded font; I would directly Google in English, and usually, the top StackOverflow posts, articles, and YouTube videos can solve it. If I'm unsure how to ask for professional terms, I can ask GPT how to phrase my questions. Sometimes, Baidu can also provide solutions, like this article on how to gesture back.

In most cases, as long as you want to solve a problem, you can always find a way.

image

I often ask GPT how to ask questions...

Of course, some problems may only belong to me, and there may be no solutions worldwide; at this point, I need to exercise my initiative.

I designed a special currency selection page. It can slide up and down like setting an alarm clock while displaying colorful flags and currency symbols. This is a fresh design. GPT couldn't provide a reliable design, and there were no precedents online. Later, I thought of a clever solution: turning the sliding content into high-definition images and placing them in the native Picker component of SwiftUI, which cleverly solved the problem and provided a great experience.

image

I recommend everyone to try the interface of Cush; it's very user-friendly!

If I still couldn't solve the problem, I would find a workaround.

In the number input interface of Cush, I wanted the numbers to always be large and proportionally reduce as input increases, making it both beautiful and practical. However, this involved detecting the screen size of each device, and after trying for a long time, I couldn't solve it. So I thought of a workaround: after entering 5 digits, the font would automatically shrink by one size, and so on. Although it's not a perfect solution, it works well in most cases.

This actually teaches me a principle of programming: no matter how to solve it, solving the problem is the most important.

image

For a long time during my programming, I diligently copied the code to OneDrive every night for backup. I knew pushing to GitHub was better, but OneDrive could also serve as a record. I still use Apple's Reminders as a roadmap. I know tools like Linear and Notion are better, but for now, Apple's tools are sufficient, and I can switch later if needed.

Of course, there are some problems that cannot be solved no matter what.

For example, I wanted the homepage to swipe up to a negative page, and the negative page to swipe down to the homepage. But both the homepage and the negative page are scrollable ScrollViews, and it just couldn't be achieved. Fortunately, it doesn't interfere with the core experience. After weighing the options, I had to set it aside for now. (Here’s a call for a powerful developer (`-´)>)

Getting it done is more important than perfection. I believe that in the future, I will iterate slowly and do better.

image

Backing up to OneDrive

As development progressed, I became a super big baby, wanting to ask GPT about every simple problem. I knew this dependency was not good; often, learning to do things myself would be faster, but I still got lazy, leading to consistently low efficiency.

Soon, I faced a lesson.

I needed to add a paid feature (IAP) to the application. But this was a complex issue, involving both front-end and back-end and various judgments. GPT is great for solving single-point problems, but its solutions for complex issues are often poor. During those days, I tried various approaches and was exhausted. I also thought about seriously learning IAP, but it seemed very difficult, and I was reluctant to learn. GPT couldn't solve the problem, which led me into a contradictory internal struggle, and it was painful.

Later, I finally began to step out of my comfort zone. I first looked at the Minority tutorial, but it directly provided a file with bugs, which had no causal relationship, and I really didn't dare to use it. Then I looked at Apple's official tutorial, which provided a test application with source code that included all payment types. But I was really confused; I just wanted the simplest payment solution! Stuck not knowing and not daring to delete the extra parts, I didn't dare to use it.

Sometimes it's quite strange; I thought I provided a perfect solution, but in reality, others just wanted a little bit, and perfection became a burden for them.

In fact, there has always been a mature solution for IAP: RevenueCat. However, its YouTube tutorial videos are often forty minutes long, and when I dragged the progress bar, the code in the middle looked very complex, which was daunting. Later, when I really had no choice, I told myself to spend an hour to watch it carefully, and it wouldn't be a problem. So I watched it carefully and found that it was as simple and straightforward as SwiftUI, with clear and understandable documentation; it was really not difficult. I spent two or three hours creating the IAP.

This was particularly significant for me; it taught me an important lesson: many difficult things in life are often just troublesome, not truly difficult. As long as you patiently learn and break things down bit by bit, you can gradually complete them. This mindset has made me less intimidated when facing difficulties. Now, I can patiently watch some longer and more complex videos, learning the "SwiftUI Programming Philosophy" that I previously found daunting.

image

The amazing man who helped me solve many problems

In short, day by day, little by little, I completed my application.

December - January: Launch and Collaboration#

At this point, let me introduce my application: Cush Budget.

I have had the habit of budgeting since college, but I often give up after a few weeks. Nevertheless, during those weeks of budgeting, I became aware of how much I spent, and I really saved money. So whenever my spending spiraled out of control, I would use budgeting as a correction tool, budgeting for a few weeks, and I would gradually improve.

In 2023, after I gathered the courage to resign, I naturally thought of creating such a budgeting software. It helped me, and I believe it can help more people. Thus, Cush was born. It features a unique top-and-bottom screen design, allowing users to focus on budgeting in most situations; it emphasizes the mood notes feature, where users can write notes for each month, day, and every record; on the launch page, I also specifically remind users that they can budget short-term to correct overspending.

Interestingly, at that time, I was obsessed with learning Duolingo and really liked its cute little notifications, so I also created a notification system in the app that pops up reminders when users overspend. This reminder would also change based on the user's level of overspending; I thought of hundreds for this and spent a lot of effort.

image

Top-and-bottom screen design | Mood notes | Fun reminders

These were the features I developed before launching the product. Without user research, it was all based on my intuition and imagination. At that time, I thought the unique features of Cush should be short-term correction of overspending and fun reminders, so I made this the marketing direction after launch.

After completing the application, I applied for a developer account, released it for TestFlight testing, made modifications and optimizations, and then launched it.

After launching, according to the expected direction, I tried to do some promotions, such as posting on Xiaohongshu and Douban. Soon, I received a recommendation from the App Store for the week, and MRR reached $500+. But when I wanted to start promoting seriously, a senior told me to first improve the app's retention rate. To improve retention, I needed to know why users used my product and what dissatisfaction could be improved. So I started user research.

image

Apple recommendation ~

Cush is simple and exquisite. During the testing and initial launch phase, many users expressed their love for it; they were all very kind, and I am truly grateful for that. However, this also masked some problems, leading me to mistakenly believe that the app was developing according to my preset trajectory. But after I sent out a bunch of questionnaires and made calls to over ten users, I found that it was completely different.

For them, the most valuable aspect of Cush is that it helps develop budgeting and saving habits. Traditional budgeting software piles up a bunch of complex features, requiring users to select categories before budgeting, which is cumbersome and hard to stick to. But Cush has a minimal and distraction-free interface; users only need to swipe down to record amounts without even needing to categorize, making it easy to stick to budgeting. Meanwhile, Cush's intelligent daily budget and the red warning color when overspending can subtly help save money with every record every day.

On the other hand, the mood notes feature I previously envisioned was hardly used. Those cute reminders were annoying and useless.

image

Cush can really help many people improve through budgeting

So Cush made changes. I hid the reminders and removed the concept article on short-term correction of overspending. The focus of the application shifted to "helping users develop budgeting and saving habits."

Here, I can also introduce some future plans for Cush: in terms of developing budgeting habits, Cush will add a desktop widget that allows users to customize preset tags, eliminating the hassle of repeatedly tagging, making budgeting faster; in terms of developing saving habits, during weekly reviews, users will be able to look back and choose which expenses can be saved, improving for the next week.

This experience has been particularly beneficial for me. I have always been interested in products, but I have never professionally worked on product development. Now, I am analyzing needs, conducting user research, and getting closer to the career path I like. Every detour has been fascinating; it turns out that the content I read in books is like this. I have picked up product books that I previously found unengaging, and I am curious about what will happen on this path.

image

By the way, I also predict: Cush will support setting budgets for individual tags

By the end of December, through a special opportunity, I collaborated with a prominent developer.

I have always known that I am not good at and do not enjoy development; filling in the gaps was just a last resort. After collaborating, I focused on product development while he handled the coding. We established a work schedule and a documentation library, and everything progressed as expected. I really felt that my work happiness increased tenfold. In less than a month, we implemented iCloud backup, automatic budgeting, income mode, and fixed many bugs.

image

The features we developed together

At the beginning, Cush could only record expenses, and all product designs were centered around expenses. Implementing income meant that all details and interfaces had to be redesigned. At that time, I also had the sudden idea to add a saving mode. Thus, expenses, income, and saving modes were mixed together, and I designed dozens of interfaces, always feeling unsatisfactory. Later, my development partner helped me clarify the product value, and we decided to remove the saving mode. We learned about lean startup principles, conducted user research, and adjusted our positioning to help everyone develop budgeting and saving habits, making income secondary.

In the end, we implemented the income mode in a very clever way. The original design required almost no changes; income was only lightly displayed as optional. It added a significant feature that would typically require complex design, but the current design remained almost unchanged, simple and natural. Although it took a lot of effort in product design, it greatly reduced development and usage costs, making it worthwhile overall.

This experience also reminded me to spend more time thinking about the product rather than blindly diving into development for speed and piling on features.

image

Cush before implementing the income mode

image

Cush after implementing the income mode, with almost no changes

image

Abandoned "saving feature"

image

Abandoned complex solution 1

image

Abandoned complex solution 2

image

Abandoned complex solution N ...

The developer friend I collaborated with is really great. He is not like many developers who only focus on coding; he has a good sense of product. We discussed and debated, and the product we created was clearly better. However, at the beginning of our collaboration, he wanted to learn product knowledge from a mature product, while I was just a novice in product development. So, after a month, our collaboration came to an end. According to the agreed 50% split, it amounted to over 1,600 yuan, which I think is far below his monthly salary.

I hope I can work hard to improve Cush, enhance myself, and invite him back for a worthwhile collaboration.

February: Starting from the Heart#

The hardest thing to overcome in independent development is discipline.

Without a job, my time is freely arranged, and there is no pressure of performance goals. I really enjoy design, so I often stay up late designing until two or three in the morning. I wake up close to noon, lacking energy and self-control, and since I don't like programming, I end up watching random news to escape. Sometimes, I can waste 7-8 hours in a day without even opening Xcode.

Then one day, I finally couldn't stand it anymore; this is not the life I wanted when I resigned!

I used the 5Why method to ask myself why I stayed up late designing, and delving into my subconscious, I found it was out of fear of losing inspiration and thinking that it showed I was working hard. But I told myself that professionalism should be reflected in discipline, not by "pretending to work hard" through the time invested. Inspiration is a stable result of professionalism; pursuing sudden inspiration is not a reflection of professionalism. So I quit staying up late.

When I sleep in late in the morning, I ask myself if I felt happy after sleeping in for ten years. Not really. Sleeping in today only satisfies an addiction; tomorrow I won't remember the joy of today's laziness, right? Right, I dismantled the craving for immediate satisfaction, and now I have no desire to sleep in the morning. Now I wake up every day at six-thirty.

This may sound a bit strange. Why not just avoid using my phone before bed or set an alarm in the morning? Because the best way to change behavior is to change cognition, not to constrain behavior. All thoughts come from subconscious presets; by using 5Why to open the subconscious and negate that preset, behavior can naturally change.

It sounds a bit strange, but I recommend giving it a try.

image

As for my low work efficiency during the day, I knew it was because I was in passive driving mode, unaware of how I was wasting time. So I referred to the time tracking table from the book "Time Poverty" and made an optimized version. I recorded what I was doing at the moment. Just recording this action made me realize that I was watching news, so I reduced my news consumption.

Interestingly, by tracking my time, I found that after working intensively for an hour, I would slack off and watch news for an hour. Later, I switched my working method to stand up and walk around (take a break) every 20 minutes of work, and I could then work continuously for two hours, only needing to watch news for half an hour. Gradually, I got to know myself better and improved little by little.

image

My time tracking history

Sometimes, I felt lost and didn't know what to do. The reason was that I had too many things I wanted to do, which felt too big to start. I would use Feishu's mind mapping tool to break it down. I found that just writing it down would make my anxiety disappear. Without negative emotions, my self-control improved. Mind mapping is really suitable for learning and organizing; now I use it for reading notes, organizing user interviews, making plans, and various tasks; I highly recommend it!

image

Using mind maps for reading notes is much better than linear tools like Notion and Flomo; I highly recommend it

I am good at cognition and time management, so solving these problems is not difficult. But soon, I encountered a difficult problem to solve.

During the product promotion phase, most of my users mainly came from Xiaohongshu. However, when I mentioned "recruiting" users while working on iCloud, I was restricted for violating rules, and every subsequent post was limited. No matter how I appealed for violations, they all said there was no problem, but everything I posted was limited, which made me really frustrated. Xiaohongshu is really quite silly in this regard. In short, I fell into a state of anxiety over instability.

So, I began to learn other growth methods. I joined a bunch of independent developer groups and learned that many independent developers, when unsure of what to do, would first create budgeting, to-do list, or diary applications, which are humorously referred to as the "independent developer trio." This made me feel a strange sense of shame. I watched a bunch of content like "What to do as an independent developer" and "Show income," but I didn't learn much knowledge; instead, I began to doubt whether what I was doing had potential, how the category growth prospects were, whether the input-output ratio was worth it, and whether the possibility of making money was high, etc. After evaluating, I became even more anxious.

In the days after resigning, I was playing on Jike. I initially wanted to relax, but it was full of AI hype and many "big shots" showcasing their achievements, which made me even more anxious. I couldn't help but start to waver: Is this an era of AI opportunities? Is making a budgeting app too outdated? Is my decision too poor?

In the end, a "independent developer mentor" I had been following also said that beginners should never make budgeting apps, and with the departure of the developer big shot, my mindset completely collapsed.

image

I lost my passion for Cush; I felt like I had accomplished nothing, I felt I couldn't find a job, and I didn't know what I should do. Then, I started looking into civil service exam materials...

During those days, I watched countless civil service exam videos, downloaded materials to analyze which positions suited me, and even discovered that the civil service exam in Tibet was relatively easy, which excited me a bit. I thought, maybe this is it; I’ll work hard to pass, and living a stable life should be quite happy! This was not the life I envisioned before resigning, yet I was very much looking forward to it.

But if I took the civil service exam, what would happen to those users who had paid? This tore at my heart. Deep down, I knew that even if I passed, I wouldn't be happy. If I looked at some success literature at that time, I might regret my life. I once had infinite ideas, but after facing a setback, I escaped, becoming an ordinary person filled with self-pity and anger.

In short, it was a very low-pressure time. I even considered filming videos, becoming a fitness coach, and other unreliable ideas.

image

I seriously researched making videos but found I didn't enjoy writing and editing such tight, professional content, so I gave up

Then, by chance, I came across a video of the boss of Pang Donglai.

He was answering a common person's confusion: What to do with a life of 28 years without achievements? His answer was: No matter how much you earn, don't compare yourself to others; calm down and work seriously to create beauty. This was actually a rough video that spoke some seemingly cliché words, but for me, it felt like a divine revelation. I don't know why, but suddenly I understood.

All my unhappiness stemmed from a certain expectation: I want success in the worldly sense. So I need to seize opportunities (AI), make money (change direction), and prove myself (not making the independent developer trio). But the driving force behind my creation of Cush has always been my desire to create something beautiful, which is the source of my courage to resign in 2023, and I wrote it into the application while developing; it was that heartfelt liking and motivation during every late-night design session.

Some answers, I actually already knew; I just forgot.

image

Swipe down in Cush settings to see this Easter egg

What if I don't succeed? I may not have much money, but I can still find a job, enjoy air conditioning, and live materially better than ancient kings and nobles; what if I miss the AI opportunity? I also missed the mobile internet and Bitcoin opportunities, yet I am still living well; what if I don't make Cush? I think looking back in ten years, I would regret it!

At the same time, I believe Cush is definitely not the last product in my life. I have always had many ideas, such as a brand new way of working called hillo, a small tool to enhance macOS workflows, a series of imaginations based on Arc, and AI, among others. I can treat Cush as a great training opportunity to enhance my product abilities, making it easier to tackle these products in the future. Slow is fast.

Thus, after carefully considering the worst outcomes and what I truly want, I suddenly found clarity. I then unfollowed the "independent developer mentor" and a group of "AI big shots," exited all independent developer groups, and stopped focusing on these sources of anxiety, no longer setting success as my goal. Suddenly, my mind opened up, and my passion for Cush, my creativity, and my self-control all returned.

It's quite fascinating to think about. Now, I am still doing the same things as before, as if nothing has happened.

image

I have the power to change myself

Oh, regarding the Xiaohongshu limit issue, it still hasn't been resolved. Thinking about it still makes me anxious. However, switching my mindset, this should just be a hassle, not a difficult problem! I hope to share next year at this time that it has become a trivial matter, brushed aside in one sentence.

If you also want to create a product from scratch#

Finally, if you also want to create a product from scratch.

For the product, I suggest focusing on a small point and keeping it simple.

Simplicity is beauty. It is not simply deleting features or having fewer functions, but rather simplifying after careful consideration, helping users focus on the most important things. For example, my Cush adopted a top-and-bottom screen design from the beginning, hiding most of the less frequently used content, allowing users to focus on the core budgeting aspect and stick to it; the entire application does not have flashy data analysis, only highlighting one metric: whether there is overspending, which helps users save money.

This kind of simplicity is not constrained by technology; it is a choice.

image

By using a top-and-bottom screen design, I hid recording and charting functions that are not frequently used

In design, refer to the best solutions.

I placed the applications that I think have the best aesthetics and functionality on my phone's home screen to remind myself daily. I even bought an expensive Mobbin membership to browse it often. If you are not yet skilled in design, you can simply learn Figma. You don't need to worry about advanced features like components and variables; just learn the basics. When designing, always preview on your phone.

Oh, by the way, I recommend using Apple's official components, such as Sheet, Picker, Apple's design language, haptic feedback, etc. The development cost is low, and the experience feels very smooth. Pursuing customization may lead to something both difficult and ugly. Apple's HIG is a great design reference, but it should be selectively accepted based on actual situations. For example, Apple does not recommend multiple layers of Sheets. Transit uses multiple layers of Sheets, which is logically confusing and provides a poor experience. However, my Cush uses a clear multi-layer Sheet logic of "This Week - Today - This Entry," which works just fine.

image

My phone's home screen

Once you have decided what kind of application you want to create and designed it on paper or in a Figma-like drawing software, you can start learning programming.

Fortunately, the emergence of AI has truly made it possible for everyone to create through programming.

Programming has its difficulties and complexities, but it also has its simple and fun aspects. In the past, learning required first tackling difficult theoretical parts, which often ended attempts before they began. Now, with AI, you don't have to write the difficult parts yourself; you just need to understand and use them, greatly lowering the threshold. With confidence, you can gradually touch on interface interaction code and other more interesting things, slowly falling in love with programming, making it easier to learn the previously obscure parts.

You can start by finding a programming tutorial.

The Minority programming course is a suitable choice. If you purchase the Minority programming course, I recommend starting with the first chapter, then reading through the second chapter, and following along with the first seven sections of the third and fourth chapters on your computer, and then you can directly create applications.

See, understand what programming is about, and build a programming foundation. You only need to understand the Swift part without writing it, follow along with SwiftUI, and learn what your application needs. Then you can directly create applications. First, activate GPT-4 membership, and then for any needed features, ask AI/find tutorials/Google/message developer big shots. When encountering problems, solve them; if they cannot be solved, break down the problems, change the questions, or set them aside temporarily, and you can gradually complete them.

As for actual tutorials and resources, I recommend StackOverflow for troubleshooting, Chris for explaining RevenueCat, and Apple's official SwiftUI tutorial. But wait, I think you don't need to collect anything at the beginning; you don't have to wait until you're ready to start. Just start directly; whatever features you want, Google them, and good resources will naturally appear.

image

If you can only remember one piece of advice, it is to use Google for English searches!

I bought the Minority programming course a long time ago, but because the initial Swift part was very discouraging, I thought I would never be able to program in my life. But now, not only can I write, but I have also developed my own application. Although I am just a small beginner, this is something I never thought possible. If I can do it, I believe you can too.

Finally, as for how to promote the product after launch, I currently have no experience. I hope to share more next year.

Conclusion#

Looking back at the first 24 years of my life, it seems like I passed them without knowing how.

Although I made decisions about my life, such as which university to attend, what major to study, and what job to take after graduation, these decisions came from me, yet they also seemed not to be mine. I can imagine that according to convention, I would get promoted and raise my salary, start a family, have two lovely babies, retire, play chess with friends, end up in ICU, and squeeze into a small grave. It always feels like I am being pushed along.

But the past year of 2023 felt like a magical journey.

I hesitated for a whole year and finally gathered the courage to resign. After resigning, I tried many things and finally decided what I wanted to do now. I encountered many setbacks and doubts along the way, but I finally overcame them and firmly made my choice. For the first time, I felt that I was living my own life, and I was responsible for my own life. It's hard to describe this feeling, but it is very real.

I don't know what the future holds. Perhaps next year, when my savings run out, I will return to the workplace and continue to seek promotions; perhaps Cush will grow strong and become the simplest and most user-friendly budgeting software in the world; perhaps AI will be so powerful that all of this becomes meaningless, and everyone will retire at 30, spending their days strolling and playing chess; or perhaps life is unpredictable, and change can come suddenly.

Regardless, in the present, let's live each day more steadily, grow our skills, and create more beauty!

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.