年度征文 | AI、ゼロから、私の最初のアプリ - 少数派#
#Omnivore
利益関連声明: 著者は文中の製品に直接的な利益関係があります(開発者、自社製品など)。
「この記事は 2023 年度の征文活動に参加します。私の 2023 年度のキーワードは:創造です。」
2023 年は特別な年です。
この年、私は勇気を出して辞職し、ゼロからプログラミングを学び、私自身の最初のアプリを作りました:Cush 予算管理。私の人生は軌道を外れ、未知の場所へと向かっているようです。その間に多くの喜びや成長、迷いや彷徨があり、これらが私の 2023 年のキーワード「創造」を形成しました。
私は、画面の前にいる多くの人々も素晴らしいアプリを作りたいと思っていることを知っていますが、プログラミングの難しさに囚われ、浅くしか学べていないのです。だからこそ、私のこの一年の経験を書き留め、AI の助けを借りてゼロからどのように少しずつ創造していったのかを共有したいと思います。私ができたのだから、あなたもできると信じています。
さあ、始めましょう!
8 - 11 月:プログラミングの道#
開発を始めたとき、私はまず少数派の「iOS 独立開発ガイド」を学びました。
このチュートリアルはゼロからのユーザーを対象に、プログラミングとは何か、アプリをどのように一歩ずつ作るかを体系的に紹介しています。
私は毎日 2-3 章を学び、約半月かけて読みました。最初は真剣に紙にメモを取り、各章の課題を完了しました。しかし、Swift の部分がますます難しくなり、特に 2.5 の構造部分は読むのも困難になりました。コードも増えていき、紙にメモを取るのは本当に大変でした。その後、私は直接 SwiftUI の部分に飛び、簡単に見終わった後、アプリ作りに取り掛かりました。
当時の紙に取ったメモ
私のアプリは大きく分けて 2 つの部分に分かれています:データアルゴリズムとインターフェースの相互作用。
データアルゴリズムは、データベース、データの保存・削除、データの呼び出しなどを指します。この部分は通常 Swift を使用し、比較的難しくて退屈です。インターフェースの相互作用は、データの表示やユーザーとの相互作用を指します。この部分は SwiftUI を使用し、まるで積み木を組み立てるように、より扱いやすいです。
最初に自分のデータベースを構築する必要がありました。チュートリアルに従って、JSON やデータの増減、読み書きなどの関数を使う必要があり、見ただけで頭が痛くなりました。ちょうどその時、AI が非常に人気だったので、試してみる気持ちで、アメリカのギフトカードを購入して GPT-4 を開通しました。そして、私は AI に直接尋ねました:
私は Swift のソフトウェアを開発しています。これは教育用のコードです。このコードを参考にして、私のデータベースコードを提供してください。データ形式は XXX で、さらに注意点として:YYY(私の特別な要求)があります。
言わざるを得ませんが、これは本当に素晴らしいものでした。AI は完全で動作するコードを直接提供してくれました。教育用のコードのフレームワークを採用し、私のカスタマイズされた要求を満たしてくれました。これが私が AI の素晴らしさを初めて実感した瞬間です。
私はもはやコードを書く必要がなく、理解できて実行できれば、プログラミングの難易度は大幅に下がりました。
データベースができたら、データを呼び出して表示する必要があります。最初は AI に直接尋ねました:
これは私のデータベースです。過去 7 日間の支出合計を計算する関数を生成してください。
しかし、私のアプリは記帳ソフトであり、多くの関数が関与しているため、毎回データベースをコピー&ペーストするのは非常に面倒でした。そこで、私は GPTs を作成し、データベースを Promote として事前設定しました。これにより、毎回生成したい関数を伝えるだけで済むようになりました。
このような繰り返しの作業は、事前設定された Promote の GPTs に非常に適しています。
GPT 3.5 でも Promote を事前設定できます
データアルゴリズムが設計された後は、インターフェースを構築する必要があります。
この分野には多くのプログラミング言語があり、SwiftUI、UIKit、さらには Flutter などがあります。最初は調査を行い、SwiftUI を使うかどうか悩んでいる開発者の不満を見ました。その後、少し学んでみたところ、SwiftUI が好きになりました。
SwiftUI はまるで積み木を組み立てるようです。2 行のテキストが必要な場合は、2 つの Text ビューをドラッグ&ドロップするだけで済み、非常に簡単に始められます。公式には多くの事前設定されたコンポーネントがあり、例えばアラームの上下にスクロールして時間を選択する効果は、SwiftUI で Picker コンポーネントを呼び出して数行のコードを書くことで実現できます。書くのが本当に楽しく、ストレス解消にもなり、これが私が初めてプログラミングを好きになった理由です。
数行のコードで右側の効果を実現できます
プログラミングを始める前に、私はすでに Figma で全てのページを設計していました。したがって、次の作業はページごとに作成することです。
まず、大部分のページは基本的な要素の積み重ねであり、それほど難しくありません。
私はいくつかの SwiftUI アプリをダウンロードしました。Swifter、Interactful、Libraried、Fabula などです。これらはまるで SwiftUI 効果の小辞典のようです。欲しい効果があれば、ソースコードを探して GPT に送信し、すぐに書くことができます。
ここで GPT の小技を共有します。
オンラインで解決策を検索していると、問題に関連するが理解できないコードがたくさん見つかります。私はそれを切り取って GPT に尋ねます:「このコードは何かインスピレーションを与えますか?」どんなに乱雑で無関係でも、GPT は核心を見つけて模倣することができます。私の多くの問題はこのように解決されました。
Interactful:ソースコードを直接コピーできます
しかし、ページとコードが増えるにつれて、データの流れもますます複雑になってきました。
以前はすべてのコードを GPT に送信していましたが、GPT は常に重要な部分を読み取ることができました。しかし、後になって 1 ページに数千行のコードがある場合、GPT に送信すると文字数がオーバーしてしまいます。そこで、開発が 1/3 に達した時に、数日間コードの整理やコメントの規範を学び、すべての一般的なモジュールを再利用可能なコンポーネントとしてパッケージ化しました。その後、GPT に尋ねるたびに、私は常に核心を迅速に送信できるようになり、効率が大幅に向上しました。また、GPT が提供する回答が時々良くなることにも驚きました。
問題を明確に尋ねることは、AI とのコミュニケーションにおいても非常に実用的です。
//MARK: - を使ってコードを整理するのは非常にストレス解消になります
GPT も常に信頼できるわけではありません。時には特に複雑な解決策を提示することがあります。
私のデザインでは、メモボックスを左右にスワイプして閉じることができるようにしたいと考えていました。これにより、使用感が非常に自然になります。しかし、GPT はユーザーのスワイプ動作を検出するように指示し、UIKit や Objective-C など非常に複雑なコードが関与し、実現結果も非常に悪いものでした。
私はそれが信頼できないと感じ、なぜ左右にスワイプするというアイデアを思いついたのかを考えました。後に、これは iPhone のホーム画面の左右スワイプ体験に由来することに気づきました。これは実際には SwiftUI の事前設定されたコンポーネント TabView です。その後、私は GPT に TabView の方法で実装するように頼み、数行のコードで解決しました。
したがって、GPT が提示する解決策があまりにも複雑な場合は、自分の要求を最適化してみると良いでしょう。
最終的な効果の展示
もう一つの時、私は厄介なバグに直面しました:小数点を入力するとアプリがフリーズしてしまうのです。
GPT に尋ねると、常に解決策を提示してくれますが、問題を解決することはできませんでした。私はブレークポイントテストを学び、長い間調査した結果、実は地域の問題であることがわかりました。私の携帯電話は小数点をカンマ,として設定されているフランスの地域になっていました。そこで、データを渡す前に判断を行い、問題を解決しました。
これも私に教訓を与えました:AI に過度に依存してはいけない、自分のプログラミングスキルを強化する必要があるということです。
もし私がプログラミングを知らなければ、AI に尋ね続けるしかなく、解決策が信頼できるかどうかを判断することもできません。しかし、プログラミングを理解した後は、非常に簡単な解決策があり、自分が問題に直面したときにもより良く調査できるようになります。AI は私の従業員のようなもので、私の能力の限界がそれの能力の限界を決定します。
保存前に左側のコードを使ってカンマの小数点をフィルタリングすることで、クラッシュバグを回避できます
もちろん、自分の能力を向上させるだけでなく、問題を解決するための簡単な方法もあります:外部の助けを求めることです。
一般的に、GPT-4 が解決できない問題については、BingAI、Board、Pi に再度尋ねることがあります。時には驚くほど解決できることもあります。いくつかの問題は、オンラインで明らかに解決策があるものです。例えば、ナビゲーションのタイトルを丸体に設定する方法については、英語で Google 検索を行い、一般的に前列の StackOverflow、記事、YouTube 動画などが解決してくれます。専門用語の聞き方がわからない場合は、GPT に質問の仕方を尋ねることができます。時には、百度も解決策を提供してくれることがあります。例えば、このジェスチャーで戻る方法の記事です。
ほとんどの場合、問題を解決したいと思えば、必ず解決策を見つけることができます。
私はよく GPT にどうやって質問するかを尋ねます...
もちろん、いくつかの問題は私だけのもので、世界中で解決策が見つからないこともあります。この場合は、自分の主体的な能動性を発揮する必要があります。
私は特別な通貨選択ページをデザインしました。これはアラームを設定するように上下にスワイプでき、同時にカラフルな旗と通貨記号を表示します。これは新しいデザインです。GPT は信頼できるデザインを提供できず、オンラインにも参考例がありませんでした。その後、私は巧妙な方法を考えました:スワイプする内容を高解像度の画像に変え、SwiftUI のネイティブ Picker コンポーネントに入れることで、巧妙に解決し、体験も非常に良好でした。
皆さんも Cush のこのインターフェースを試してみてください、とても使いやすいです~
もしまだ解決できない場合は、別の方法を考えてみてください。
Cush の数字入力インターフェースでは、数字が常に大きく、入力に応じて比例して小さくなるようにしたいと考えました。これにより、見た目も良く、実用的です。しかし、これは各デバイスの画面サイズを検出する必要があり、長い間試しても解決できませんでした。そこで、私は別の方法を考えました:5 桁の数字を入力すると、フォントが自動的に 1 サイズ小さくなり、これを繰り返すという方法です。完璧な解決策ではありませんが、大部分のケースでうまく機能します。
これは実際にプログラミングが教えてくれた教訓でもあります:どんな方法であれ、問題を解決することが最も重要です。
私はプログラミングの長い間、毎晩一生懸命にコードを OneDrive にバックアップしていました。GitHub にプッシュする方が良いことは知っていますが、OneDrive でも同様にアーカイブできます。今でも Apple のリマインダーを使ってロードマップを作成しています。Linear や Notion などのツールの方が良いことは知っていますが、今は Apple で十分で、将来的に必要になったら変更すればいいのです。
もちろん、どうしても解決できない問題もあります。
例えば、私はホームページを上にスワイプして負のページに移動し、負のページからホームページに下にスワイプできるようにしたいと考えています。しかし、ホームページと負のページはどちらもスクロールページ ScrollView であり、どうしても実現できませんでした。幸いにも、これはコアな体験に干渉しません。天秤にかけた結果、私は一時的に保留することにしました。(ここで強力な開発者に呼びかけます (`-´)> )
作り上げることは、完璧であることよりも重要です。私は将来的に徐々に改善し、より良いものを作ると信じています。
OneDrive にバックアップ
開発の後期に入ると、私はすっかり大きな赤ちゃんになり、どんな簡単な問題でも GPT に尋ねたくなりました。この依存性は良くないことは知っていますが、多くの場合、自分で学ぶ方が早いのに、怠けてしまい、効率が常に低いままでした。
すぐに教訓がやってきました。
私はアプリに有料機能 IAP を追加する必要がありました。しかし、これは複雑な問題で、フロントエンドとバックエンド、さまざまな判断が関与します。GPT は単一の問題を解決するのに適していますが、複雑な問題を解決するための提案はしばしば非常に悪いものでした。その数日間、私はさまざまな試みをし、疲れ果てました。その間に IAP を真剣に学ぼうとも思いましたが、見るだけで難しそうに感じ、学ぶ気になれず、GPT も問題を解決できず、矛盾した内面的な葛藤に陥り、非常に苦痛でした。
その後、私はついに快適なゾーンから抜け出すことを始めました。まず少数派のチュートリアルを見ましたが、バグのあるファイルを直接提供され、因果関係がなく、使うのが怖かったです。次に Apple の公式チュートリアルを見ましたが、ソースコードのあるテストアプリを提供してくれ、すべての有料タイプが含まれていました。しかし、本当に混乱してしまいました。私は最もシンプルな有料プランを使いたいだけなのです!余分な部分を削除することができず、使うこともできませんでした。
時には非常に奇妙です。完璧な提案を提供したと思ったら、実際には他の人が求めているのはほんの少しだけで、完璧さが逆に負担になることもあります。
実際、IAP には成熟した解決策が常に存在します:RevenueCat。しかし、その YouTube の教育動画は 40 分もあり、進捗バーを引っ張ると、途中のコードは非常に複雑に見え、手が出しにくくなります。その後、どうしようもなくなり、私は自分に 1 時間だけ真剣に見てみるように言いました。すると、真剣に見終わった結果、SwiftUI と同じくらいシンプルで直接的で、ドキュメントも明確で理解しやすく、本当に難しくありませんでした。2、3 時間で IAP を作成することができました。
この出来事は私にとって特別なもので、非常に重要な教訓を教えてくれました:生活の中で多くの困難なことは、実際には面倒なだけで、難しいわけではありません。忍耐強く、一歩ずつ学び、分解していけば、徐々に完了することができます。この心構えは、困難に直面したときに私を怯えさせなくなりました。今では、より長く複雑な動画を忍耐強く見ることができるようになり、以前は手が出せなかった「SwiftUI プログラミング思想」を学ぶことができています。
神秘的な男性が、私の多くの問題を解決してくれました
とにかく、こうして一日一日、少しずつ、私はアプリを完成させました。
12 - 1 月:上架と協力#
ここまで書いたところで、私のアプリについて紹介させてください:Cush 予算管理。
私は大学から記帳の習慣がありましたが、数週間続けるといつも途中で挫折してしまいました。それでも、記帳の数週間の間に、自分がいくら使ったのかを知り、支出行動に対する感覚を持つことができ、実際に支出を抑えることができました。したがって、支出が制御できなくなったとき、私は記帳を誤りを修正するツールとして使い、数週間記帳することで、徐々に改善されるのです。
2023 年、私は勇気を出して辞職した後、自然にこのような理念の記帳ソフトを作りたいと思いました。それは私を助けてくれたものであり、他の多くの人々を助けることができると信じています。こうして Cush が生まれました。特別な上下画面デザインを採用し、ユーザーがほとんどの場合、記帳に集中できるようにしました。また、特にメモ機能を強調し、ユーザーは毎月、毎日、各記録に対してメモを書くことができます。起動ページでは、ユーザーが短期間の記帳を行い、オーバー支出を修正できることを特に示しています。
面白いことに、その時私は Duolingo に夢中で、その小さなウィジェットが非常に好きでしたので、アプリにも通知システムを作りました。ユーザーがオーバー支出したときに、面白いリマインダーがポップアップします。このリマインダーは、ユーザーのオーバー支出の程度に応じて変化し、そのために私は 100 以上のアイデアを考え、多くの労力を費やしました。
上下画面デザイン|気分メモ|面白いリマインダー
これらは私が製品を上架する前に行った機能です。ユーザー調査は行わず、すべて自分の直感と想像に基づいていました。当時、私は Cush の特別な機能は短期間のオーバー支出の修正と面白いリマインダーであるべきだと考え、これを上架後のマーケティングの方向性にしました。
アプリを完成させた後は、開発者アカウントを申請し、TestFlight でテストし、修正・最適化を行い、上架しました。
上架後、予想通りの方向に従い、いくつかのプロモーションを試みました。例えば、小紅書や豆瓣などに投稿しました。その後、すぐに App Store の今週のおすすめに選ばれ、MRR は $500 + に達しました。しかし、真剣にプロモーションを始めようとしたとき、ある先輩からアプリのリテンション率を向上させる必要があると言われました。リテンション率を向上させるためには、ユーザーがなぜ私の製品を使用しているのか、どのような不満が改善できるのかを知る必要があります。そこで、私はユーザー調査を始めました。
Apple の推薦 ~
Cush はシンプルで美しく、テストと上架の初期段階で、多くのユーザーの友人がその愛を表現してくれました。彼らは本当に素晴らしく、私は本当に感謝しています。しかし、これがいくつかの問題を隠し、アプリが私の予想通りに進展していると誤解させてしまいました。しかし、私は多くのアンケートを送り、十数人のユーザーに電話をかけた後、全く違うことがわかりました。
彼らにとって、Cush の最も価値のある点は、記帳と節約の習慣を育むことができることです。従来の記帳ソフトは複雑な機能を積み重ね、記帳前にカテゴリを選択する必要があり、煩雑で続けるのが難しいです。しかし、Cush のインターフェースは非常にシンプルで干渉がなく、記帳時には金額を下にスワイプするだけで、カテゴリを選択する必要もなく、簡単に記帳を続けることができます。同時に、Cush のスマート日予算やオーバー支出時にインターフェースが赤くなる警告色は、毎日、記録のすべての取引で、無意識のうちに節約を促します。
私が以前考えていた気分メモ機能は、ほとんど誰も使用していませんでした。あの面白いリマインダーは、煩わしく、役に立たないものでした。
Cush は本当に多くの人々が記帳を通じてより良くなるのを助けることができます
したがって、Cush は変化を遂げました。私はリマインダーを隠し、短期間のオーバー支出の修正に関する理念の記事を削除しました。アプリの重心は「ユーザーが記帳と節約の習慣を育むのを助ける」ことに移りました。
ここで Cush のいくつかの将来の計画を紹介できます:記帳習慣の育成に関して、Cush はカスタマイズ可能な事前設定タグを持つデスクトップウィジェットを追加し、繰り返しタグを付ける煩わしさを省き、記帳をより迅速にします。節約習慣の育成に関しては、ユーザーは毎週の振り返り時に、どの支出を節約できるかを振り返り、次の週により良い結果を出すことができます。
この経験は私にとって本当に特別なものでした。私は常に製品に興味を持っていましたが、結局のところ、職業的に製品を作ったことはありませんでした。しかし今、私はニーズを分析し、ユーザー調査を行い、私が好きな職業の道に近づいています。すべての回り道が私に新しい発見をもたらし、書籍で読んだ内容がこのようなものであることを知りました。私は以前は共鳴しなかった製品に関する書籍を再び手に取り、この道で何が起こるのかに興味を持っています。
そういえば、Cush は単一のタグに予算を設定することをサポートする予定です
12 月末、特別な機会があり、私はある名前の大手開発者と協力しました。
私は自分が開発が得意ではなく、好きでもないことをずっと知っていました。短所を補うことはやむを得ない選択でした。協力後、私は製品を担当し、彼は開発を担当し、作業のスケジュールができ、ドキュメントライブラリができ、すべてが予想通りに進み、私は本当に仕事の幸福感が 10 倍向上したと感じました。1 か月も経たないうちに、私たちは iCloud バックアップ、自動記帳、収入モデルを作成し、多くのバグを修正しました。
私たちが一緒に作った機能
Cush は設計の初めに支出を記録することしかできず、製品のすべての設計は支出を中心に構築されていました。収入を追加することは、すべての詳細とインターフェースを再設計することを意味します。その時、私は節約モードを追加したいという突発的なアイデアを持ちました。したがって、支出、収入、節約の 3 つのモードが混在し、私は数十のインターフェースを設計しましたが、常にうまくいかないと感じていました。その後、私の開発パートナーが製品の価値を整理してくれたので、私たちは節約モードを削除しました。私たちはリーンスタートアップを学び、ユーザー調査を行い、記帳と節約の習慣を育むことを助けるという位置づけに調整しました。したがって、収入は二次的なものとなりました。
最終的に、私たちは非常に巧妙な方法で収入モデルを実現しました。元の設計はほとんど変更する必要がなく、収入は浅く表示されるだけです。これは大きな機能を追加しましたが、設計はほとんど変わらず、シンプルで自然です。製品設計に多くの労力を費やしましたが、開発と使用コストを大幅に削減し、全体的には価値がありました。
この経験は私に警告を与えました:製品についてもっと考える時間を費やし、速度のために盲目的に開発に投入し、機能を積み重ねるのではなく、考えるべきです。
収入モデルを作成する前の Cush
収入モデルを作成した後の Cush は、ほとんど変化がありません
削除された「貯金機能」
削除された複雑なソリューション 1
削除された複雑なソリューション 2
削除された複雑なソリューション N ...
私が協力した開発者の友人は本当に素晴らしいです。彼は多くの開発者のようにただ開発をするのではなく、優れた製品意識を持っています。私たちの間には議論や対立があり、作り出された製品は明らかにより良いものになりました。しかし、彼は協力の初めに成熟した製品から製品知識を学びたいと思っていましたが、私もただの製品初心者でした。したがって、1 か月後、私たちの協力は終了しました。約束された 50%の分配は 1600 元余りで、彼の 1 か月の給与を大きく下回ると思います。
私は Cush を良いものにし、自分を高め、再び彼を呼びたいと思っています。価値があるから、引き続き協力したいです。
2 月:心から出発#
独立開発を行う上で、最も克服すべき点は:規律性です。
仕事がないと、時間は自由に安排でき、目標や業績のプレッシャーもありません。私はデザインが大好きで、よく夜遅くまでデザインをして 2、3 時まで起きていました。昼近くになって起きると、エネルギーも自己制御力もなく、プログラミングも好きではないので、いろいろな情報を見て逃避していました。時には、1 日で 7-8 時間もサボってしまい、Xcode プログラミングソフトを開くことすらありませんでした。
ある日、私はついに我慢できなくなりました。これは私が辞職前に望んでいた生活ではありません!
私は 5Why の方法を使って、自分にデザインを夜遅くまでやる理由を尋ね、潜在意識に深く入り込むと、インスピレーションが逃げることを恐れていることや、努力していると感じることがわかりました。しかし、私は自分に、専門性は規律性に現れるべきであり、投入した時間で「努力しているふり」をするべきではないと伝えました。インスピレーションは専門性の結果であり、突発的なインスピレーションを追求することは専門性の表れではありません。そこで、私は夜更かしをやめました。
朝寝坊をしているとき、私は自分に尋ねました。過去 10 年間寝坊してきたが、今は本当に幸せを感じていますか?感じていません。今日寝坊することはただの欲求を満たすだけで、明日には今日の寝坊の楽しさを忘れてしまうのではないですか?そうです、私はその瞬間の満足感を崩し、朝は寝坊する気持ちがなくなりました。今では毎朝 6 時半に起きています。
これらは少し奇妙に聞こえるかもしれません。なぜ寝る前にスマホを触らない、朝にアラームを設定するなどの実際的な方法ではないのか?行動を変える最良の方法は、認知を変えることであり、行動を制約することではありません。すべての考えは潜在意識の前提から来ており、5Why を使って潜在意識を開放し、その前提を否定すれば、自然に行動を変えることができます。
聞こえは少し奇妙ですが、試してみることをお勧めします。
昼間の作業効率が低い理由は、自分が受動的運転に陥り、時間を無駄にしていることに気づいていないからです。そこで、「時間貧困」という本の時間追跡表を参考にして、最適化版を作成しました。自分が何をしていたかを記録します。この行動を記録するだけで、実際に情報を見ていることに気づき、情報を見る時間を減らしました。
面白いことに、時間を記録することで、毎回高頻度で 1 時間働いた後に 1 時間情報を見ていることがわかりました。その後、私は作業方法を切り替え、20 分働いたら立ち上がって歩く(休憩)ことにしました。これにより、2 時間連続して働くことができ、情報を見る時間は半分に減りました。徐々に、自分をより理解し、少しずつ改善していきました。
私の時間記録の履歴
時には、何をすればよいのかわからず、迷うこともあります。理由は、やりたいことが多すぎて大きすぎて、手を付けられないからです。そこで、私は Feishu の思考ノートを使って分解します。書き出すだけで、焦りが消えることに気づきました。ネガティブな感情がなくなると、自己制御力も向上します。思考ノートは本当に学習や整理に適しており、今では読書ノート、ユーザーインタビューの整理、計画作成など、さまざまなことに使っています。お勧めします!
思考マップを使って読書ノートを作成するのは、Notion や Flomo などの線形ツールよりもはるかに良いです。お勧めします!
私は認知と時間管理が得意で、これらの問題を解決するのは難しくありません。しかし、すぐに解決が難しい問題に直面しました。
製品のプロモーション段階で、私の大部分のユーザーは主に小紅書から来ていました。しかし、iCloud を作成する際に「ユーザーを募集する」と言及したところ、違反として制限され、その後のすべての投稿が制限されました。違反申立てをしても問題はないと言われましたが、何を投稿しても制限され、私は本当に崩壊しそうになりました。小紅書は本当にバカなことをします。とにかく、私は不安定さに対する不安に陥りました。
そこで、私は他の成長方法を学びました。私は多くの独立開発者グループに参加し、独立開発者が何をすればよいかわからないとき、まず記帳、ToDo リスト、日記の 3 つのアプリを作ることが多いことを知りました。これらは独立開発の三種の神器と呼ばれています。これにより、私は無意識に恥ずかしさを感じました。私は「独立開発で何をするか、収入を晒す」などの内容をたくさん見ましたが、知識は得られず、逆に自分がやっていることに将来性があるのか、カテゴリの成長の見込みがどうか、投入と産出が価値があるのか、収益の可能性が高いのかなどを疑問に思いました。評価することで、さらに不安が増しました。
辞職してからのこれらの日々、私はずっと Jike を使っていました。本来はリラックスするつもりでしたが、そこには AI の風潮があり、多くの「大物」が成果を晒していて、さらに不安を感じました。私は揺らぎ始めました:これは AI の機会の時代であり、記帳をするのは時代遅れではないか、決定が悪すぎるのではないか。
最後に、私がずっと注目していた「独立開発のメンター」も、新人は絶対に記帳をするべきではないと言っていました。開発者の離脱も相まって、私の心は完全に崩壊しました。
私は Cush に対する情熱を失い、自分が何も成し遂げていないと感じ、仕事が見つからないのではないか、何をすればよいのかわからないと感じました。そして、私は公務員試験の資料を見始めました…
その数日間、私は多くの公務員試験の動画を見て、資料をダウンロードして自分に合った職種を分析し、さらには西藏の試験が比較的簡単だと小さく興奮しました。私は自分がこうなるのだろうと思いました。努力して合格すれば、安定した生活ができるはずだと!これは私が辞職前に望んでいた生活ではなく、当時は非常に憧れていました。
しかし、もし公務員試験を受けたら、あの支払いをしたユーザーはどうなるのか?このことが私の心の中で非常に引き裂かれました。そして、私は心の奥底で、合格しても幸せにはならないことを知っていました。その時、成功学の本を読んでいたら、人生を後悔するかもしれません。かつては無限のアイデアを持っていましたが、少しの挫折で逃げ出し、無能な怒りを抱え、自分を責める普通の人になってしまいました。
とにかく、非常に低圧な時期でした。その時、私は動画を撮ったり、フィットネスインストラクターになったりするなどの不確かなアイデアを考えたこともありました。
動画を作ることを真剣に研究しましたが、私はこのような緊密で専門的な内容を書くことや編集することが好きではないことに気づき、断念しました。
そして、偶然の機会に、私は胖东来のオーナーの動画を見ました。
彼は普通の人の疑問に答えていました:28 歳で何も成し遂げていない人生はどうすればよいのか?彼の答えはこうでした:給料がいくらであろうと、他人と比べず、心を静めて真剣に働き、美しいものを創造することです。これは粗雑な動画で、いわゆる「鶏スープ」のようなことを話していましたが、私にとってはまるで神の啓示のようでした。なぜか、私は突然理解しました。
私のすべての不幸は、世俗的な成功を求める期待から来ていました。だからこそ、チャンス(AI)をつかみ、稼ぎ(方向転換)、自分を証明しようとしていました(開発の三種の神器を作らない)。しかし、私が Cush を作る原動力は、素晴らしいものを創造したいというものであり、これは私が2023 年に辞職する勇気の源としてアプリに書いたものであり、私が毎晩デザインに没頭する中で感じた心からの好きな気持ちと動機です。
実は、いくつかの答えはすでに知っていたのですが、忘れていただけです。
Cush の設定をスワイプすると、このエッグが見えます
成功しなかったらどうなるのか?お金はあまりないが、それでも仕事を見つけ、エアコンをつけることができ、物質的には古代の王侯将相よりも良い生活ができる;もし AI の風潮に乗れなかったらどうなるのか?私はモバイルインターネットやビットコインの風潮にも乗れなかったが、それでも元気に過ごしている;Cush を作らなかったらどうなるのか?10 年後に振り返ったとき、私は非常に後悔するだろう!
同時に、Cush は私の人生で最後の製品ではないと考えています。私は常に多くのアイデアを持っています。例えば、全く新しい働き方 hillo、macOS のワークフローを増幅する小ツール、Arc に基づく一連の想像、さらには AI などです。私は Cush を素晴らしいトレーニングの機会と見なし、私の製品能力を向上させ、将来的にこれらの製品を作るときによりスムーズに進めることができると考えています。遅いことは早いことです。
こうして、最悪の結果と私が本当に望んでいるものを慎重に考えた結果、私は突然理解しました。そして、私は「独立開発のメンター」と一群の「AI の大物」をフォロー解除し、すべての独立開発グループを退出し、これらの不安の源をもはや気にせず、成功を目標にしないことにしました。すると、私の脳は突然開放され、Cush に対する情熱、創造性、自己制御力がすべて戻ってきました。
考えてみると、非常に奇妙です。今、私は以前と同じことをしており、何も起こらなかったかのようです。
私は自分自身を変える力を持っています
ああ、そういえば、小紅書の制限については、まだ解決していません。考えるとまだ心配です。しかし、心の持ち方を変えれば、これはただの面倒なことであり、難しいことではないはずです!来年の今頃、再び共有できることを願っています。それは目立たない小さなことになり、軽く流されることでしょう。
あなたもゼロから製品を作りたいなら#
最後に、もしあなたもゼロから製品を作りたいなら。
製品に関しては、小さな点を中心に、シンプルに作ることをお勧めします。
シンプルさは美です。それは単に削除や機能が少ないということではなく、深く考えた後の簡素化であり、ユーザーが最も重要なことに集中できるようにします。例えば、私の Cush は、設計の初めから上下画面を採用し、あまり使わないコンテンツを隠しているため、ユーザーは最も核心的な記帳に集中し、続けやすくなっています。アプリ全体には派手なデータ分析はなく、ただ一つの指標:オーバー支出かどうかを強調しているため、ユーザーが節約するのを助けることができます。
このシンプルさは技術に囚われるものではなく、選択の結果です。
上下画面デザインを通じて、記録やグラフなどのあまり使わない機能を隠す
デザインにおいては、最良のソリューションを参考にしてください。
私は美的感覚と機能が最も優れたアプリをスマートフォンのホーム画面に置き、毎日自分に思い出させています。また、高価な Mobbin の会員を購入し、暇なときに多くのアプリを見ています。もしまだデザインができない場合は、Figma を簡単に学ぶことをお勧めします。コンポーネントや変数などの高度な機能を気にする必要はなく、簡単に学べば大丈夫です。デザインするときは、必ずスマートフォンで同期プレビューを行ってください。
ああ、そういえば、SwiftUI の公式の部品を多く使うことをお勧めします。例えば、Sheet、Picker、Apple のデザイン言語、振動フィードバックなどです。開発コストが低く、体験が非常にスムーズに感じられます。カスタマイズを追求すると、難しくて醜くなる可能性があります。Apple の HIG は非常に良いデザインの参考ですが、実際の状況に応じて選択的に受け入れる必要があります。例えば、Apple は多層の Sheet を推奨していません。Transit は多層の Sheet ですが、論理が混乱しており、体験が良くありません。しかし、私の Cush は「今週 - 今日 - この取引」というように論理が明確な多層の Sheet であり、使用する上で問題はありません。
私のスマートフォンのホーム画面
あなたがどのようなアプリを作りたいのかを考え、紙や Figma のような描画ソフトでデザインができたら、プログラミングを学び始めることができます。
幸運なことに、AI の出現により、誰もがプログラミングを創造する可能性を持つようになりました。
プログラミングには困難で難解な部分もあれば、シンプルで面白い部分もあります。以前は、まず難しい理論部分を学ばなければならず、始める前に試みが終わってしまうことが多かったです。今では AI があるので、難しい部分を自分で書く必要はなく、理解して使うだけで済み、ハードルが大幅に下がりました。自信を持って、徐々にインターフェースの相互作用コードなど、より面白いものに触れ、プログラミングを好きになり、以前は難解だった部分を学ぶのがさらに簡単になります。
まずはプログラミングのチュートリアルを探してみてください。
少数派のプログラミングコースは適切な選択です。もし少数派のプログラミングコースを購入した場合は、最初の章を学び、次に第 2 章を通読し、コンピュータで第 3 章と第 4 章の最初の 7 節に従ってプログラミングを行えば、すぐにアプリを作ることができます。
見てください、プログラミングがどのようなものであるかを理解し、プログラミングの基礎を育てます。Swift の部分は理解できれば書く必要はなく、SwiftUI に従って書き、アプリ部分は自分のアプリに必要なものを学べばいいのです。そうすれば、すぐにアプリを作ることができます。まずは GPT-4 の会員を開設し、必要な機能を AI に尋ねたり、チュートリアルを探したり、Google で検索したり、開発者にメッセージを送ったりします。問題に直面したら、問題を解決し、解決できない場合は問題を分解したり、問題を変えたり、一時的に保留したりすれば、少しずつ完成させることができます。
実際のチュートリアルやリソースについては、疑問を解決するためのStackOverflowをお勧めします。RevenueCat を解説しているChrisをお勧めします。また、Apple 公式の SwiftUI チュートリアルもお勧めします。しかし、最初は何かをコレクションする必要はなく、準備が整うまで待つ必要はありません。直接始めて、やりたい機能を Google で検索すれば、良いリソースが自然に現れます。
もし一つだけ覚えておくべきアドバイスがあるとすれば、それは英語で Google 検索をすることです!
私は以前、少数派のプログラミングコースを購入しましたが、最初の Swift 部分が非常に難解で、プログラミングをすることは一生無理だと思っていました。しかし今では、私はプログラミングができるようになり、自分のアプリを開発することができました。たとえそれが小さな入門者であっても、これは私が考えたことのないことです。私ができたのだから、あなたも必ずできると信じています。
最後に、製品が上架された後のプロモーションについては、私もまだ経験がありません。来年またシェアできることを願っています。
結尾#
私の人生の前 24 年を振り返ると、どうやって過ごしたのかわからないまま過ぎてしまったようです。
私は大学を選び、何を学び、卒業後にどんな仕事をするかを決めるなど、人生を決定することもありました。しかし、これらの決定は私から来たもののようで、また私ではないようでもあります。私は想像できます。慣習に従って、昇進し、給料が上がり、家庭を持ち、2 人の可愛い子供を育て、退職し、友人と将棋を指し、ICU に入り、小さな墓地に埋められる。何かに押されて進んでいるような気がします。
しかし、2023 年はまるで幻想的な旅のようでした。
私は 1 年間迷い続け、ついに辞職する勇気を振り絞りました。辞職後、私は多くのことを試み、今やるべきことを決定しました。作業中に多くの挫折や疑念に直面し、私はついに克服し、しっかりと選択をしました。私は初めて、自分の人生を生きていると感じ、自分の人生に責任を持っていると感じました。この感覚を表現するのは難しいですが、それは非常にリアルです。
未来がどうなるか、私もわかりません。もしかしたら、来年には貯金が尽きて職場に戻り、昇進し続けるかもしれません。あるいは、Cush が大きく成長し、世界で最もシンプルで使いやすい記帳ソフトになるかもしれません。あるいは、AI があまりにも優れていて、すべてが無意味になり、皆が 30 歳で一斉に退職し、毎日散歩して将棋を指すかもしれません。あるいは、人生は無常で、変化が突然訪れるかもしれません。
いずれにせよ、今この瞬間をより安定して過ごし、スキルを向上させ、より多くの美しいものを創造していきましょう!