月別アーカイブ: 2022年5月

プログラミング画面

Mac(M1)向けFlutterのインストール方法

環境としてはmacOS Monterey12.1(Apple M1)にインストールした際の方法になります。

M1じゃないMacでもこの方法でインストールできると思います。

Flutterのインストール方法は大きく分けて、公式のSDKをダウンロードして設定する方法とbrewを使った方法の2つがあります。

この記事ではbrewを使ったインストール方法になります。

※Homebrew、Visual Studio Code、Google Chromeはインストール済みの前提です。


Flutterのインストール

依存パッケージなどは後ほど「flutter doctor」コマンドを使って表示されたものを順次入れていけば良いので、まずは下記コマンドでFlutterをインストールします。

brew install flutter

下記のようなメッセージが表示されれば成功です。

==> Installing Cask flutter
==> Linking Binary 'dart' to '/opt/homebrew/bin/dart'
==> Linking Binary 'flutter' to '/opt/homebrew/bin/flutter'
🍺  flutter was successfully installed!

依存パッケージの確認

下記コマンドで必要となるパッケージを確認します。

flutter doctor

そうすると下記画面のようなメッセージが表示されます。

「flutter doctor」実行後の画面
「flutter doctor」実行後の画面

メッセージを確認するとAndroid toolchain(Android Studio)とXcode(XcodeとCocoaPods)をインストールする必要があるので、これらをインストールしていきます。


Xcodeのインストール

App Storeから「xcode」で検索してインストールします。

※インストールが完了するまで2時間ぐらい掛かりました…。気長に待ちましょう。

インストールが完了したらそれで終わりではなく、開いてライセンス契約に同意する必要があります。

Xcodeライセンス契約同意画面
Xcodeライセンス契約同意画面

「Agree」で同意して進めます。

完了したら下記コマンドを入力し、初期設定を済ませます。

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch

Cocoa Podsのインストール

下記コマンドを入力してインストールします。

sudo gem install cocoapods

下記のようなメッセージが表示されれば成功です。

Done installing documentation for concurrent-ruby, i18n, tzinfo, zeitwerk, activesupport, nap, fuzzy_match, httpclient, algoliasearch, ffi, ethon, typhoeus, netrc, public_suffix, addressable, cocoapods-core, claide, cocoapods-deintegrate, cocoapods-downloader, cocoapods-plugins, cocoapods-search, cocoapods-trunk, cocoapods-try, molinillo, atomos, colored2, nanaimo, rexml, xcodeproj, escape, fourflusher, gh_inspector, ruby-macho, cocoapods after 15 seconds
34 gems installed

Android Studioのインストール

下記コマンドを入力してインストールします。

brew install android-studio

下記のようなメッセージが表示されれば成功です。

==> Installing Cask android-studio
==> Moving App 'Android Studio.app' to '/Applications/Android Studio.app'
🍺  android-studio was successfully installed!

Android SDKのインストール

ここまで問題なくインストールできたら、一旦「flutter doctor」で確認します。

flutter doctor

Android Studioを初めてインストールした場合、おそらく下記のようなメッセージが表示されると思います。

Command-line Toolsが無いというエラー画面
Command-line Toolsが無いというエラー

Command-line Toolsが無いと表示されているため、Android Studioからインストールを行います。

Launchpad等からAndroid Studioを起動します。

初回起動すると、下記画面のようにライセンス契約に同意するよう求められるので、すべてAcceptを選択してFinishを押下して進めます。

Android Studioライセンス契約同意画面
Android Studioライセンス契約同意画面

起動後、Android Studio → Preferences…を開き、Appearance & Behavior → System Settings → Android SDKを開き、SDK Toolsタブを選択します。

Android SDK Command-line Tools (latest)にチェックを入れてApplyを押下します。

参考記事(https://qiita.com/rikupo/items/5999a67cd6b4806830ea)

Android SDK Command-line Toolsインストール画面
Android SDK Command-line Toolsインストール画面

ここまで完了したら、最後に下記コマンドで残りのライセンス契約に同意します。

flutter doctor --android-licenses

Accept? (y/N):と聞かれるので、問題無ければyで同意していきます。

下記のようなメッセージが表示されれば完了です。

All SDK package licenses accepted

再度依存パッケージの確認

「flutter doctor」で無事にすべての依存パッケージがインストールされているか確認します。

flutter doctor

下記のように「No issues found!」のメッセージが表示されていれば無事完了です。

Flutter依存パッケージすべてインストール済み
Flutter依存パッケージがすべてインストールされている

Flutterの環境構築は以上で完了ですが、念のためHelloWorldしてみます。


HelloWorld!で確認する

HelloWorldする用の適当なディレクトリを作成します。

mkdir -p ~/Flutter/Sample

Visual Studio Codeを起動します。

まずは公式で用意されているFlutterプラグインをインストールします。

Extensionsメニューから「Flutter」で検索し、一番上に表示されるFlutterをインストールします。

Visual Studio CodeのFlutterプラグイン
Visual Studio CodeのFlutterプラグイン

Flutterプラグインのインストールが完了したら、Open Folder…から作成したディレクトリを指定して開きます。

「main.dart」というファイルを新規で追加し、公式から拝借した下記サンプルソースを貼り付けます。

void main() {
  for (int i = 0; i < 5; i++) {
    print('hello ${i + 1}');
  }
}

Flutterプラグインが正常に動作していれば、エディタウィンドウにRun | Debugが表示されているはずなので、Debugを押下して実行します。

エディタウィンドウにRun | Debugの表示
エディタウィンドウにRun | Debugの表示

コンソールに上記画面の結果が表示されれば成功です。


終わりに

WEBサービスをメインに個人開発していますが、作りたいものでどうしてもスマホアプリでないと不都合なものがあったので、これを機にFlutter(dart言語から)勉強しつつスマホアプリも並行して作っていければなあと思っています。

読んで頂きありがとうございました。

最後にことわざを紹介して終わりたいと思います。

千里の道も一歩から(せんりのみちもいっぽから)

大きなことを成し遂げるには、手近なところから着実に始めていくことが肝要であることのたとえ。

https://kotobank.jp/word/%E5%8D%83%E9%87%8C%E3%81%AE%E9%81%93%E3%82%82%E4%B8%80%E6%AD%A9%E3%81%8B%E3%82%89-1729075

モチベーションが上がる有名なことわざですね。

お互いFlutterの勉強がんばりましょう。

スマートフォン

[雑記]ユーザーフレンドリーなアプリ/サービス

あくまで雑記なので、あまり参考にならない記事になるかもしれませんのでご了承ください。

普段WEBサービスをメインに個人開発をしています(仕事でもWEBサービス開発をしています)

サービスのアイデアを書きなぐっているネタ帳を見ていると「これはスマホアプリにすべきだなあ」というものや「こっちはWEBサービスが良いかな」といったように、機能要件によって展開すべきプラットフォームが異なることが分かります。

今回はユーザーフレンドリーなアプリやサービスの場合、どのプラットフォームで展開すべきか?という考察記事になります。


PC / スマホのブラウザからアクセスするWEBサービス

基本どの端末でもブラウザからアクセスできるといったWEBサービスは王道なプラットフォームだと思います。

しかし、このパターンはPCからアクセスした場合「一覧性が上がる」「操作性が向上する」のようなメリットが無いと意味が無いので、これらの要素が無い場合はスマホアプリのみにすべきだと思っています。

すべきというとちょっと語気強いですが…その方が良いと思います。

仮にPCとスマホでのアクセスで視認性も操作性も変わらず差別化できないのであれば、類似のスマホアプリがリリースされた場合、そっちにユーザーを取られてしまうと考えているからです。

根拠としては、スマホアプリはHOME画面にショートカットアイコンが配置されるため、ユーザーが開きたい時に1タップでアクセスすることができるので、ユーザーの負担は最小です。

スマホのHOME画面

※スマホアプリはHOME画面にアイコンが自動で配置されるため、1タップで起動できる。

URLのショートカットをHOME画面に配置することもできますが、ユーザーがそれを調べて実施する労力は持ち合わせていないことの方が多いです。

URLショートカット作成画面

※iPhoneのSafariを使った場合の画面。
※iPhoneの場合GoogleChromeだと「ホーム画面に追加」メニューが無いためできません。

そのため、自ずとユーザーは使いやすい方であるスマホアプリの方に流れてしまう可能性が高いと思っています。

※ちなみに下記は個人開発した積みゲー管理WEBサービスTUMIGAMEの画面レイアウトです。PC版はスマホより表示件数を多くして一覧性を上げています。


PC / スマホのブラウザおよび専用スマホアプリからアクセスするサービス

ちょっとややこしいですが、PCとスマホのブラウザからもアクセスができ、専用スマホアプリからのアクセスもできるハイブリッドなサービスのことを指しています。

専用スマホアプリの場合はブラウザ経由ではなく、ネイティブ側のUIで表示されるイメージです。

スマホアプリでの操作性は基本レスポンスも早いしプッシュ通知等も使えるため、上述した「PC / スマホのブラウザからアクセスするWEBサービス」より格段にユーザーフレンドリーな作りになります。

懸念点としては開発負担が大きいことですね。

WEB側とアプリ側とで実装する必要があるので、単純に開発と運用の工数が膨れ上がります。

なので、スマホアプリでないと駄目な理由が明確に無いのであれば、無理にアプリ開発しなくても良いかなと思います。

例として、プッシュ通知が必須、ゲームの実績機能(Appleの場合はGame Center、GooglePlayの場合はリーダーボード等)必須とかでなければ、アプリ開発せずともレスポンシブ対応したWEBサービス(上述したPC / スマホのブラウザからアクセスするWEBサービス)に留めておいて良いのかなと個人的には思います。


スマホアプリ

1つの画面内の情報量が少なく、小さい画面内で収まるのであればスマホアプリのみがベストプラクティスだと思います。

上述したHOME画面にアイコンが設置されるため、アクセスも早いしネイティブUIで基本サクサク動きますしね。


まとめ

ざっくりまとめると、開発と運用工数に余裕があればWEBとスマホアプリ、無ければWEB、情報量が少なく小さい画面で収まればスマホアプリという感じが良いかなと思いました。

最後にことわざを紹介して終わりたいと思います。

商いは門門(あきないはかどかど)

商売のこつは客を観察してその客に合った物を売ることだということ。

https://kotowaza.jitenon.jp/kotowaza/392.php

このことわざの通り、何がユーザーにとって一番良い形か見極めて提供できるようになりたいですね。

短いですが、今回はこのあたりで終わりたいと思います。

最後まで読んで頂きありがとうございました。

幸福な女性

幸福になるにはどうすればいいか?

どうすれば幸せになれるのか?どう生きれば良いのか?などをよく思案しているのですが、その答えについて固まってきたのでまとめてみたいと思います。

大層なテーマを語れるほどの人間ではありませんが「ふーん…そういう見解もあるんだね」くらいに読んで頂けると嬉しいです。


幸せとはどういう状態か?

幸せを感じる瞬間は人それぞれで、人によっては読書している時だったりゲームしている時だったり、子供と遊んでいる時だったりお酒を飲んでいる時だったりSEXしている時だったり色々あると思います。

「幸せを感じる瞬間」と前置きをしている通り、これらは一時のものであるので永続的な幸せにはなり得ません。

じゃあ永続的な幸せとはどういう状態か?幸せの定義はなんなのか?と言うと、僕を含めてまわりの人を観察していると「誰かに認められている状態」だと確信しています。

一生懸命書いた絵を親に見てもらいたい子供のように、その本質は生まれてから死ぬまで変わらないのだと思います。


認められている状態とは?

端的に言うと「自分という人間が必要とされていると感じる」状態だと思います。

たとえばですが「教えたい」のと「教えられたい」ので言えば、どちらの気持ちの方が強いでしょうか?

おそらく前者の方を選択する人が多いと思います。

人は自分が持っている知識を教えたい生き物で、教えている = 必要とされていると感じられるからなのでしょう。

他にも、たとえば会議中に「君の意見を聞かせてくれ」なんて言われたら自分の意見を必要としてくれているんだと嬉しくなりますよね。

Twitterやインスタでもいいねが付けばそれだけで嬉しいし、話しかけられたりしたらもっと嬉しいし、有名人に反応貰えたら天にも昇る心地ですよね。

友人や知人、恋人や家族との関係性もしかり、互いに必要としているからこそ成り立つのだと思います。


どうすれば幸せになれるのか?

前置きが長くなりましたが「認められている状態」を目指せば良いということは分かりました。

じゃあどうやってこの「認められている状態」を作り出すか?ですが「先ず人を認める」ことが幸せになる方法だというのが僕の見解です。

「与えよ、さらば与えられん」という聖書にある有名な言葉がある通り、人に認められたいなら、先ずはこちらから誠意を持った態度で人と接する、その人との関係性を大切にすることが大事だと思うのです。

※この言葉の本来の意味は誰かに与えれば誰かから与えられる…ではなく、与えることで神の祝福が得られるといった精神的な報酬を指すようですが、いったんそれは置いておきます。

人に優しくするとお礼が返ってくる一連の流れは、端的にこれを表していると思います。

誰かに優しくすれば優しくされるし、愛せば愛してくれます(例外もありますが…)

真摯に人と接する

幸せになるにはこれだけで良いのだと思います。


具体例

実際にどうすれば良いのか分からない方も居るかもしれません。

僕が実際に効果があったものや気をつけていることをリスト化したので、参考にして頂ければと思います。

  • ありがとうを言う
  • こちらに否がある場合はちゃんと謝る
  • Twitter(SNS)では積極的に話しかけたり、いいねしたりする
  • Twitter(SNS)では基本自慢しない
  • 既に知っている情報を教えてもらった場合、知らないフリをして助かったとお礼を言う
  • 話すより聞く方をメインにする(あまり話さないタイプの人の場合はこの限りではないです)
  • 相手が話した内容のリアクションをちょっと大げさに取る(これは無意識ですが、好印象な気がしています)

意識的なものもありますし無意識なものもあります。

共通しているのは「不快な思いをさせない」ことと「気持ちよくなってもらう」の2点ですね。

この2つを抑えておくと円滑な人間関係を結べるかもしれません…(基本的にそんなに人と関わらないので偉そうに言えませんが…)


最後に

ここまで偉そうに書いておいて恐縮ですが、僕自身は極力誰とも繋がらずひとりになるよう努めています。

それは個人開発とこのブログに集中したいためなので、時と場合によっては敢えて人と繋がらない選択をした方が良い時もあるのかなと思ったりもします。

幸せになりたいのなら人と接し、結果を残したいのであればひとりになる…ということなのだろうなと思います。

最後にことわざを紹介して終わりたいと思います。

禍福己による(かふくおのれによる)

禍(わざわい)や福は己の心掛け次第という意味のようです。

良いことわざですね。

悪いことわざが無いだけかもしれませんが。

それでは今回はこのあたりで終わります。

最後まで読んで頂きありがとうございました。

少しでも参考になりましたら幸いです。

デジタルマーケティング

個人開発アプリの集客方法

過去記事でも書きましたが、個人開発サービスの集客は相当難しいと感じています。

ブログやサイトのように日々コンテンツが追加されるのであれば、その分グーグル検索でHITするために必要なキーワードが増えるので有利ですが、ログイン必須のサービスの場合、ログイン後のURLはクローラに徘徊してもらえないので、圧倒的にキーワードのボリュームが不足しSEOの面でかなり不利です。

そんな絶望的に集客が不利なサービスでも、少しだけ活路が見いだせたので、今回はその方法と方針について紹介します。


ブログで個人開発アプリを紹介する

先日、個人開発WEBサービスのTUMIGAME(積みゲー管理WEBアプリ)の紹介記事をこのブログ内にて投稿しました。

そこからのアクセスは今のところありませんが、ターゲットであるユーザーが検索するであろう「積みゲー 管理」のキーワードで検索したところ、検索結果上位10件以内に表示されていました。

「積みゲー 管理」の検索結果
「積みゲー 管理」で上から9件目に表示

このことから、冒頭でお話したコンテンツボリュームの不足をブログが補うような形で集客できる見込みがあることが分かりました。

「ブログでアプリを紹介して集客する」方法はかなり有効であるというのが僕の見解です。


気をつけること

ブログで個人開発アプリを紹介し、そこからの流入を狙うのが有効なことは上述しましたが、当然ブログを日々更新して続けないことには成立しません。

なので、ブログを更新し続けていることが大前提となります。

個人開発の作業中にブログを続けるのはしんどいと思うので、リリース後はブログをメインに作業するのが良いかもしれません。

他に気をつける点として、紹介記事を書くときは実際に使ってくれる人をターゲットとした記事にした方が良いと思います。

上述したアプリの紹介記事については、技術的な内容や開発時の苦労話などは一切入れていません。

これは「積みゲー 管理」で検索して、紹介記事をクリックして読んだ時のことを想定しているためです。

ここでアプリの機能以外の話をしてしまうと、利用するかもしれないユーザーにとっては不要な情報となり、それを理由に使ってもらえなくなる可能性があります。

そのため、個人開発アプリの紹介記事を書く際は実際に利用してもらえるかもしれないユーザーに響くような内容にすることをおすすめします。


とにかく露出を増やす

個人開発アプリの集客方法について色々な方の記事を読んでいるのですが、共通していることは「知ってもらうためにとにかく色々なところで告知する」です。

ブログにアプリの紹介記事を書く以外にも、TwitterやFacebook、noteやqiitaに書くようにするのが良いみたいです。

Twitterとブログで告知はしていますが他のSNSは活用できていないため、今後のためにも運用したいと思います。


まとめ

アプリやサービスの集客方法は、ダイレクトアクセスを狙うより、ブログやTwitter、Facebook、note、qiita等の紹介記事を経由しての流入を試みるというものでした。

割と当たり前のことですね…。

紹介記事のタイトルにターゲットであるユーザーが検索するであろうキーワードを入れることを忘れないようにしましょう。

※積みゲーを管理したいユーザー向けのサービスだったら「積みゲー 管理」筋トレ+食事の管理をしたいユーザー向けのサービスなら「筋トレ 食事 管理」など。

あとは告知する際に「押し付けがましくうざい」感じにならないようにするのも大事だと思います。

特にTwitterやFacebook等のSNSでは、宣伝がうざいと思うとブロックしたりミュートしたりしたくなりますからね…。

最後にことわざを紹介して終わりにしたいと思います。

牛の歩みも千里(うしのあゆみもせんり)

何事もなまけずに努力を重ねれば、最後には成果が得られるというたとえ。足ののろいウシでも歩みを重ねれば、やがて千里にも至ることから。

https://www.kanjipedia.jp/kotoba/0001418100

努力を続けたくなる良いことわざですね。

努力系のことわざは牛が出てくることが多いですね。

それでは今回はこのあたりで終わりたいと思います。

最後まで読んで頂きありがとうございました。

少しでも参考になりましたら幸いです。

泣いている女性

[雑記]個人開発したものが誰にも使われない辛さ

先月積みゲー管理WEBサービスであるTUMIGAMEをリリースしましたが、現状誰にも利用されていない状況が続いています。

過去の記事にも書きましたが、Twitterで宣伝するもアクセスはほとんど無く、利用者は未だ0です。

今年の初めから個人開発を始め、いろんなものを我慢したり犠牲にしてやっとの思いで完成したサービスですが、厳しい現実を前にだいぶ凹んでおります…。

誰にも利用されないことは前もって想定していましたが、やはり実際にその状況になってみると辛いものですね。

リスティング広告も検討しており、キーワードや他の競合の有無によっても変わるようなので一概には言えませんが、月に60,000円ほど掛かりそうなので躊躇しています。

※途中で停止すればそこまでの費用は発生しないようです。

それくらいの投資は惜しまないつもりでしたが、Twitterでの反応や未だに利用者が0ということもあり「そもそも必要とされないサービスなのではないか?」とすっかり弱腰になっています。

最近は収益を優先した個人開発はやめるべきかなあ…と考えています。

また、実際に個人開発をしてみて、多くのことに気付かされました。

コーディングはとても楽しいんですが、集客のことを考えたり利用規約やプライバシーポリシーを考えたりといった開発以外の作業は結構しんどいです。

当たり前ですが、個人開発で収益を上げようとすると、コーディング以外の作業にも注力しなければなりません。

エンジニアの場合、開発に関しては特に問題なく進められますが、WEBマーケティングの知見が無い人も多いと思うので、どちらかというと開発以外のことに注力する必要があります。

開発が好きだから個人開発で生計を立てることができたら幸せかな…なんて甘い考えがありましたが、会社での仕事と一緒で、個人開発であろうとやりたくない作業は発生します。

分かってはいたつもりですけど、結果が伴わないとしんどいものですね…。

文章がまとまりきらないので最後にことわざを紹介して終わりたいと思います。

禍福は糾える縄の如し(かふくはあざなえるなわのごとし)

わざわいが福になり、福がわざわいのもとになったりして、このの幸不幸はなわをより合わせたように表裏をなすものであるの意。

https://kotobank.jp/word/%E7%A6%8D%E7%A6%8F%E3%81%AF%E7%B3%BE%E3%81%88%E3%82%8B%E7%B8%84%E3%81%AE%E5%A6%82%E3%81%97-465785

最後まで読んで頂きありがとうございました。

プログラミング画面

Laravel9でのsitmap.xmlの実装例(コピペOK)

Laravel9でのライブラリを使わない実装例になります。

ほぼコピペできるような内容なので、良かったらご活用ください。

現時点ではLaravel9に対応していないようですが、Laravel8以下であればlaravel-sitemapの利用をおすすめします。


ルーティングの定義

use App\Http\Controllers\SitemapController;

Route::get('/sitemap.xml', [SitemapController::class, 'index']);

コントローラーの定義

例として、ログイン / プライバシーポリシー / お問い合わせページのsitemap.xmlを定義します。

class SitemapController extends Controller
{
    public function index()
    {
        $data['data'] = [
            [
                'loc' => route('login'),
                'lastmod' => '2022-05-03',
                'changefreq' => 'weekly',
                'priority' => '1.0'
            ],
            [
                'loc' => route('privacy.policy'),
                'lastmod' => '2022-05-06',
                'changefreq' => 'weekly',
                'priority' => '0.8'
            ],
            [
                'loc' => route('contact'),
                'lastmod' => '2022-04-18',
                'changefreq' => 'weekly',
                'priority' => '0.8'
            ],
        ];
        return response()->view('sitemap.index', $data)->header('Content-type', 'text/xml');
    }
}

ビューの定義

<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    @foreach ($data as $d)
        <url>
            <loc>{{ $d['loc'] }}</loc>
            <lastmod>{{ $d['lastmod'] }}</lastmod>
            <changefreq>{{ $d['changefreq'] }}</changefreq>
            <priority>{{ $d['priority'] }}</priority>
        </url>
    @endforeach
</urlset>

表示

/sitemap.xmlへアクセスして、下記のような表示になっていれば正常です。

※下記はhttps://localhost:8080/sitemap.xmlへアクセスした時の表示です。

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<script/>
<url>
<loc>http://localhost:8080/login</loc>
<lastmod>2022-05-03</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>http://localhost:8080/privacy-policy</loc>
<lastmod>2022-05-06</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/contact</loc>
<lastmod>2022-04-18</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>

終わりに

Controllerのheaderメソッドで’text/xml’を指定するのを忘れないようにしてくださいね。

長文書くのがちょっと面倒だったので、今回はsitemap.xmlを生成する実装例を紹介しました。

最後にことわざを紹介して終わりたいと思います。

手を抜く(てをぬく)

しなければいけないことをやらないこと。または、力を尽くさず、いい加減にすること。

https://kotowaza.jitenon.jp/kotowaza/5383.php

短いですが、今回はこのあたりで終わりたいと思います。

最後まで読んで頂きありがとうございました。

少しでも参考になりましたら幸いです。

TUMIGAMEロゴ

積みゲー管理WEBアプリTUMIGAMEとは?

先月初めての個人開発制作物である積みゲー管理WEBアプリTUMIGAMEについて、どういうサービスなのかを紹介したいと思います。


どういうサービスか?

所有しているゲームの管理や購入予定のゲームの管理などができるサービスです。

ログインすると「積みゲー」「プレイ中」「クリア済み」の3つのステータスが用意されており、これらのステータスに所有しているゲームを追加して管理を行います。

※ステータスは自由に追加、編集が行えます。

下記はゲーム追加画面です。

TUMIGAME ゲーム追加画面
ゲーム追加画面

下記はダッシュボード(ゲームメニュー)画面です。

ここでどんなゲームがあるかを一覧で見ることができます。

右上の検索バーから、ゲームのキーワードで検索が行えるようになっています。

TUMIGAME ゲーム管理画面
ゲーム管理画面

Twitter / Googleアカウント対応

TUMIGAMEは、TwitterまたはGoogleアカウントで利用することができます。

TUMIGAME ログイン画面
Twitter/Googleでのログイン

何ができるのか?

以降はどういう機能があるか?またその機能の詳細について紹介します。

ゲーム追加機能

TUMIGAME ゲーム追加画面
ゲーム追加時の画面

ゲームを追加する際に、下記を入力します。

※追加できるゲームの数は現状、無制限です。

ゲームタイトル

ドラゴンクエストやファイナルファンタジー等のゲームタイトル名称をここで入力します。

プラットフォーム

一般的なゲームプラットフォームである下記から選択します。

Switch, PS4, PS5, XSX, XOne, Steam, iOS, Android, PC, WiiU, Wii, 3DS, DS, N64, GC, GBA, SFC, GB, FC, PSVR, PSVita, PSP, PS3, PS2, PS1, X360, Xbox, DC, SS, MD, etc

ステータス

追加するゲームのステータスを選択します。

積みゲーの状態なら「積みゲー」プレイ中であれば「プレイ中」などといった感じで、そのゲームの現在のステータスをここで選択します。

ステータスメニューから自由に追加、編集が行えるため「購入予定」「売却予定」などのステータスを追加し、管理することができます。

画像

ゲームのパッケージ写真やスクリーンショット等の画像をアップロードできます。

既にアップロード済みの画像から選択することもできます。

画像アップロードが面倒な場合は「画像無し」も選択できます。

プレイ時間

現在のプレイ時間を入力できます。

入力しない場合、ゲーム管理画面上でのプレイ時間が非表示になります。

メモ

ちょっとしたメモを記入できます。

現在のトロフィーや実績状況や、攻略情報、ストーリーをどこまで進めていたか等の情報を入力することを想定しています。


ゲーム管理機能

追加したゲームを管理できます。

TUMIGAME ゲーム管理画面
ゲーム管理画面

ステータス、プラットフォームでの絞り込み以外にも、右上の検索バーからゲームタイトルを検索することができます。

1ページあたり40個のゲームが表示されます。

スクロールすればさらに40個のゲームを読み込んで表示します。


ステータス追加 / 編集機能

TUMIGAME ステータス追加画面
ステータス追加時の画面

最初にログインすると「積みゲー」「プレイ中」「クリア済み」の3つのステータスがあらかじめ用意されていますが、これとは別に追加や編集が行えます。

「購入予定」や「売却予定」などを追加することにより、より細かくゲームを管理することができます。


画像追加 / 編集機能

ゲームを識別するための画像をアップロードできます。

ゲーム追加時にアップロードすることもできますが、画面メニューからもアップロードが行えます。

TUMIGAME 画像アップロード画面
画像アップロード時の画面

こんな人に使ってほしい

  • 積みゲーを管理したい
  • 所有しているゲームを一覧で管理したい
  • 購入予定のゲームリストを作りたい
  • 所有しているゲームからやりたいゲームが無いかを確認したい(購入するゲームを抑制したい)
  • トロフィーコンプ、実績全解除しているゲームをリスト化したい

こういうお悩みがありましたら、ぜひTUMIGAMEを使ってみてください。

PC、スマホから無料でお使い頂けます。


最後に

不明点などありましたら気軽にご質問頂けると嬉しいです。

今回は個人開発物の宣伝記事になりましたが、技術的な内容についてのご質問でも歓迎です。

お答えできる範囲で回答させて頂きます。

今回は宣伝にちなんで、このことわざで締めたいと思います。

名を広める(なをひろめる)

その名が世間で広く知られるようになるようになること。

https://kotowaza.jitenon.jp/kotowaza/6112.php

そのまんまですね。

というかこれ、ことわざなんですね。

最後まで読んで頂きありがとうございました。

嬉しそうな子供たち

個人開発WEBサービスをTwitterで告知した時の反応

今回は2ヶ月ちょっと掛けて開発した積みゲー管理WEBサービスTUMIGAMEをTwitterで告知した時(1日経って)の反応についての記事になります。

個人開発のサービスとしては初めてのサービスになります。

ちなみにTwitterのフォロワー数は現時点で102です。

それではさっそく本題にうつりたいと思います。


ほとんど反応貰えず

普段使いしているTwitterアカウントのフォロワーさんは、僕も含めてほとんどがゲーム好きの方たちばかりです。

なので積みゲーを管理できるサービスの告知は少なからず反応を貰えるのではないかという期待がありました。

ですが結果は、友人以外のリツイートは0でした。

下記の記事を見て、RTされやすい時間帯を狙って土曜日の14:00過ぎに告知しましたが、友人以外からのRTはされず、結果は0です。

【Twitter運用ツール「Cheetah(チーター)」が100万ツイートを対象に調査】ツイートが拡散されやすい投稿時間帯は5時、11時・15時

ちなみにお気に入りは3つほどです。


実は開発途中のツイートの反応は上々だった

開発途中に動画付きでちょろっとツイートしたことがあるのですが、その時の反応は結構良かったです。

RTが6お気に入りが13、再生回数は451件とそこそこの反応がありました。

この反応を見て需要はあるのだと確信し、なるべく早めにリリースしようとそこからゴリゴリ開発に明け暮れました。


実際のアクセス数

告知した日のユニークユーザー数になります。

Twitterで告知した日のユニークユーザー数
Twitterで告知した日のユニークユーザー数

2となっていますが、OrganicSearchはおそらく僕なので、実際は1人だけということになります。


現実はきびしい

趣味のゲームを我慢してお酒もやめて気合を入れて取り組んだ個人開発のサービスですが、結果は絶望的です。

結構凹んでます…。

精神的に弱いこともあり、自分の作ったコンテンツが見向きもされないという現実は「自分という人間の存在価値が否定されている」という気分になっちゃうんですよね……。

そうじゃないことは頭では分かってるんですが、どうしても気分は落ち込んでしまいます。

最後にことわざを紹介して終わりにしたいと思います。

夜明け前が一番暗い(よあけまえがいちばんくらい)

どん底の後には必ずいいことがあるというたとえ。日が昇る直前に一番暗い時間があるということから。

https://kotowaza.jitenon.jp/kotowaza/719.php

良いことわざですね。

会社が嫌で嫌で仕方なくてどうにか個人で生活をしたいという思いから個人開発を始めたわけですが、今はその会社での仕事も精神的に落ち着けているので、これからはのほほんと個人開発とブログを進めていければなあと思ってます。

グラフ

5ヶ月経ってのブログPV数公開

このブログのPV数を公開したいと思います。

5ヶ月経ってのブログのPV数
5ヶ月経ってのブログのPV数

上がっているわけでもなく下がっているわけでもない、絶望的なグラフになりました…。

※ちなみに2月くらいまでは節約をメインにしたブログでした。

グーグルサーチコンソールの検索パフォーマンスについても載せておきます。

グーグルサーチコンソール 5ヶ月間の検索パフォーマンス
グーグルサーチコンソール 5ヶ月間の検索パフォーマンス
上位のクエリクリック数表示回数CTR掲載順位
個人開発 webサービス1195.26%76.79
個人開発 アイデア1137.69%33.23
個人開発1714.29%19
個人開発 ツール11100%54
肩こり 解消グッズ マウス0470%45.28
生活水準 下げる方法0440%43.7
個人 開発 アイデア0310%51.48
金 投資 ブログ0240%175.21
金投資 ブログ0230%158.09
金投資ブログ0230%175.52
生活水準 下げる0200%81.65
個人開発 進め方0170%5.12
稼げる まとめ0140%69.5
会社員 時給0110%55
稼げるまとめ0110%74.45
個人 開発 web サービス0110%86.27
ベストよりベター050%20.8
laravel breeze パスワードリセット040%35.75
デスクワーク 肩こり グッズ040%88
個人開発 稼ぐ030%48.67
個人開発 webサービス アイデア030%57
“人間嫌い”030%59.33
個人開発 収益020%5.5
laravel9020%34
javascript サブウィンドウ020%77
javascript スクロール 最下部020%88.5
laravel breeze 2fa010%31
個人開発 サブスク010%40
javascript scroll 最下部010%44
個人開発 サービス010%45
生活水準を下げる010%65
肩こり 腰痛 グッズ010%65
かせげるまとめ010%71
生活水準 下げる 難しい010%72
デスクワーク 健康グッズ010%83
デスクワーク 首 グッズ010%85
webサービス 個人開発010%91
節約ブログ010%129
コツコツ投資 ブログ010%135
副業 ブログ おすすめ010%253
グーグルサーチコンソール 5ヶ月間の検索パフォーマンス詳細データ

ブログのタイトルでもある「個人開発」というキーワードの掲載順位が高いことが分かりますね。

更新頻度を高く保つために個人開発以外の記事もいっぱい上げているわけですが、今後はちゃんと個人開発に関する内容を多く投稿したいと思います。

塵も積もれば山となる(ちりもつもればやまとなる)

今はまだアクセス数少ないですが、このことわざを信じてコツコツ更新をしていきたいと思います。

今回は短いですが、これで終わりたいと思います。

最後まで読んで頂きありがとうございました。

少しでも参考になりましたら幸いです。

ふさぎ込んでいる女性

やらなきゃいけないのに行動できない理由

過去の僕も行動できない人間だったのですが、今は筋トレは10年ほど、ブログは5ヶ月ちょっと、個人開発は3ヶ月ほどですが、続けられています。

おそらくこれのおかげかな?という僕なりの答えがあるので、今回はどうすれば行動できるようになるか?をまとめてみます。


見返りをイメージできていない

冒頭でもお話した通り、やらなきゃと思っていた筋トレとブログと個人開発を今現在も継続しているのですが、よくよく考えるとこれらには共通点がありました。

それは行動の見返りがはっきりとしているということです。

見返りがあるではなく、はっきりという点がポイントです。

分かりやすく説明すると、僕は10年ほど筋トレ(2〜3日に1回1時間程度)を継続しているのですが、そのおかげで体型は細いまま維持しています。

手前味噌で恐縮ですが、体型を褒められることも多かったりします。

この「筋トレを続けていれば人から褒めてもらえる」「体型を維持すればちやほやされる」という実体験に基づく見返りがあるからこそ、無意識に続けていられるのだろうというのが僕の見解です。

一方で、ブログや個人開発に関しては、ほとんどアクセスがない状況です。

この2つに関して言えば「頑張ればお金になる」という見返りがあると確信しているおかげで続けられています。

見返りはまだ受け取っていない状態ですが、確信しているために頑張れています。

なぜ確信しているのかというと、過去にアダルトサイトをいくつか運営していたことがあり、それらも継続して1年以上経ってから収益化できた成功体験があるためです。

なので、実体験に基づく見返りは背中を強く押してくれるはずです。

※実体験に基づく見返りのイメージが無い場合の方法については後述します。


習慣化できていない

これは言わずもがなですよね。

習慣化されていないとすぐに挫折することは経験されている方も多いと思います。

じゃあどうすれば習慣化できるか?については次の項目でお話します。


やらなくて良いことをやっている

これに尽きます。

厳しいことを言うと「犠牲にするものを明確にしていない」ということだと思います。

僕のまわりでも「個人開発したいけど全然行動できていない」という人が居ます。

その人を観察していると、Twitterやネットサーフィンをずっとしていたり、休日に遊びに出かけたり、全然関係ない情報の収集をしていたりします。

当たり前ですが、そんなことをしていてはいつまで経ってもやらなきゃいけないことは出来ませんよね。

僕は個人開発を始めるにあたり、犠牲にするもののリストを作成し、日々意識して行動したことで実際にリリースまで漕ぎ着けました。

なので、まずは犠牲にするものを明確にリスト化することをおすすめします。

そしてそのうえで、やるべきことをできれば毎日やることをおすすめします。

日が空いてしまうと、その「日が空く」ということが習慣化されてしまうので、辛くても最初は毎日やった方が良いです。

犠牲にするもの(捨てるもの)リスト
犠牲にするもの(捨てるもの)リスト

※写真は実際にメモに残していた「捨てるもの(犠牲にするもの)リスト」です。


覚悟ができていない

少し抽象的な表現ですが、要するに「あれもやりたい、これもやりたい」の状態で、停滞したままなんだと思います。

小説を書きたい、エンジニアとして凄いプロダクトを作りたい、ゲームを作りたいなど、やりたいことがいっぱいある人も多いかと思います。

おそらく本質は「何者かになりたい」のだと思います。

そして共通して、ゴールから逆算して、どの道へ進めば成功できるか?を考えている人も多いと思います。

これは僕も実体験で苦しんでいたので痛いほど気持ちが分かります。

ですが、当然小説家を目指すのであればゲーム作りは断念せざるを得ません。

ゲームを作るのであればゲームをするのを我慢しなければなりません。

人生は選択の連続なので、何かを選択したのなら、何かをしない選択をしたことになります。

この選択をしないことには、先へ進めないのは言うまでもないですよね。

二兎を追う者は一兎をも得ず(にとをおうものはいっとをもえず)

有名なことわざにもある通り、覚悟を決めて選択しないことにはどちらも取り逃してしまいます。


まとめ

行動できない理由のまとめです。

  • 見返りをイメージできていない
  • 習慣化できていない
  • やらなくて良いことをやっている
  • 覚悟ができていない(やらない選択をしていない)

実体験に基づく見返りをイメージできない場合の対処法ですが、行動しないままの未来をイメージして自分に対して焦燥感を持たせる方法が良いと思います。

僕も実際に、今の会社で定年まで居た時の自分をイメージした時に「このままでは駄目だ…」と思い立って、それがきっかけで個人開発を始めたという経緯があります。

ちょっと説教じみた感じになってしまい恐縮ですが、今回はこのへんで終わりたいと思います。

最後まで読んで頂きありがとうございました。

少しでも参考になりましたら幸いです。

これから先も行動できるよう一緒にがんばりましょう。