月別アーカイブ: 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の表示

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


終わりに

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

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

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

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

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

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

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

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

幸福な女性

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

真摯に人と接する

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


具体例

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

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

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

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

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

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


最後に

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

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

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

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

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

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

良いことわざですね。

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

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

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

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

デジタルマーケティング

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

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

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

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


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

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

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

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

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

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


気をつけること

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

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

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

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

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

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

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

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


とにかく露出を増やす

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

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

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


まとめ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

プログラミング画面

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について、どういうサービスなのかを紹介したいと思います。

TUMIGAME公式Twitter


どういうサービスか?

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

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

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

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

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

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

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

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

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

Googleアカウント対応

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

Googleアカウントでのログイン

何ができるのか?

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

ゲーム追加機能

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

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

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

ゲームタイトル

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

プラットフォーム

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

ゲームを追加する際にゲームのプラットフォームを選択できます。
デフォルトで下記から選択できます。

Switch, PS4, PS5, XSX, Steam, iOS, Android

上記以外にも追加したいプラットフォームがある場合、プラットフォームを追加できます。

プラットフォーム追加画面
プラットフォーム追加画面

ステータス

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

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

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

画像

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

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

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

プレイ時間

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

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

メモ

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

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


ゲーム管理機能

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

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

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

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

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


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

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

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

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


画像追加 / 編集機能

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

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

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

こんな人に使ってほしい

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

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

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

TUMIGAME公式Twitter


最後に

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

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

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

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

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

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

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

そのまんまですね。

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

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

プログラマー

[雑記]在宅勤務のありがたみと孤独感

今回は私事の雑記でお茶を濁します。


2ヶ月ぶりの出社

仕事は都内でWEBサービス開発しており、ほとんどフルリモートですが先日2ヶ月ぶりくらいに出社しました。

朝に電車に乗るのは半年ぶりくらいでしたが、今はすっかり満員電車に戻ってましたね…。

そして出社したらフロアに居る人は知らない人だらけで完全にアウェイな感じでした。

出社した時点で電車通勤 + 徒歩で結構疲れていたのですが、社内のゴミゴミとした環境内での作業は窮屈でとても疲れました。

僕は神経質なので「誰かが居る」環境での作業は結構なストレスが溜まります。

「背伸びしたいけど後ろ通る人が居たら…」とか「人目をはばからずあくびしたい…」とか「オナラ出そうだけど我慢しなきゃ」とか余計なことを考えてしまいます。

他にも、誰かから話しかけられるとどう返事して良いか分からず、汗かきながらしどろもどろになったりします。

仕事を終え帰宅する時にはドッと疲れが出たんですが、その時に「もう在宅勤務でないと仕事できないカラダになってしまったんだな」と心底思いました。

人目をはばからずあくびが出来るしオナラを我慢する必要もない、作業が一段落したら小休止でちょっと横になったりできるし。

何より往復で2時間掛かる通勤時間が無いというのがとても有り難いです。

外へ出るためにそれなりの準備をして服を着て…というのも必要ないですし、女性の場合は化粧しなくても良いというのもメリットですよね。

かなり効率化された働き方であることは間違いありませんね。

とはいえチーム内のコミュニケーションが円滑に行えないため、組織で働く以上は週に1回くらい出社するのがベストかもしれません。


在宅勤務時の孤独感

それ以外にも在宅勤務のデメリットとして「孤独」というのが挙げられます。

これは僕も強く感じていました。

誰とも話さずに1日を終えることもあり「誰でも良いから話したい」と発狂しそうになります。

贅沢な悩みですが、これは精神的に相当参ります。

コロナ前と比べてうつ状態の人の割合が2倍以上になっているというニュースも見ましたが、この孤独感と因果関係がまったく無いわけではないでしょう。

あまりに孤独で辛いとき、本当はいけないのでしょうが僕は出社してました。

気が狂いそうだったので…。

ただこの孤独感を感じない時もありました。

それは忙しいときです。

作業に没頭している時ですね。

やはり没頭している時は集中しているため、余計な感情が付け入る隙がまったくないんですよね。

在宅勤務中でも無茶なスケジュールで相当忙しかった時があるんですが、その忙しかった時の方が肉体的にも精神的にも調子が良かったです。


暇が精神を蝕む

これは事実だと思います。

なにかをしていない時はいろんなことを考えちゃいますよね。

「どうすれば幸せになれるんだろう?」「どう生きていくのが正解なんだろう?」こういう考えをしているとそのうち「なんで自分は何者でもないんだろう」「なんでこんなにつまらない人生なんだろう」とか、どんどん負の感情で埋まっていきます。

これは身を持って経験しています。

「うつ病の人は何も考えずただ休んだほうが良い」と世間では言われていますが、果たしてそうなのだろうか?と疑問に思うこともあります。

確かに、仕事とか人間関係に起因する場合において、その環境から離れてすぐの時はそれが正解なのだろうとは思います。

ですが、この考え方には違和感を覚えます。

良い薬は忘れさせてくれる何か、夢中になれる何かだと考えています。

もっと抽象度を上げると「何かをしている」状態なので、何もしないで良い環境を長く続けることは、もっと悪い方向へいってしまうのではないかと危惧しています。

またタチの悪いのが、人は基本的に怠惰なので、自発的にタスクを自分に課すことはできずに暇を繰り返し、中々うつ症状から脱却できないのではないかと思っています。

その何かを見つけるのはなかなか難しいですが、とりあえずブログをはじめてみるのをおすすめします。

毎日更新とかしていると自己肯定感も上がり楽しくなってきます(僕がそうでした)

あとは身体を動かした方が良いのは言うまでもないので、Nintendo Switch Sportsするなり筋トレするなりを習慣化すると良いと思います。

なんだかよく分からない雑記になってしまい恐縮ですが、最後に精神にまつわる有名なことわざで締めたいと思います。

健全なる精神は健全なる身体に宿る(けんぜんなるせいしんはけんぜんなるからだにやどる)

読んで字の如く健全な精神であるには健全な肉体である必要がありますよ、ということわざです。

乱文な記事を最後まで読んで頂きありがとうございました。

少しでもお役に立てたのなら幸いです。

デジタルマーケティング

個人開発リリース後1ヶ月の費用と収益

先月2022/04/22に初めて個人開発したTUMIGAME(積みゲー管理WEBアプリ)をリリースしました。

ざっくりご説明すると、所有しているゲームを未プレイ、プレイ中、クリア済み等のステータスで管理できるというサービスです。

※下記リンクは初リリース時の記事です。

初の個人開発WEBサービスTUMIGAMEをリリースしました

今回は、このTUMIGAMEリリースからほぼ1ヶ月経った状況をお知らせします。


収益

個人開発されている方ならもう予想できているかと思いますが、収益は0です。

ドメインやサーバ費用があるので、0というよりはマイナスになりますね。

主な理由としては、下記が挙げられます。

  • 利用者がほとんど居ない
  • SNSでの告知および集客をしていない
  • 最低限のSEOはしているが、効果がまだ無い
  • 広告を掲載していない

実はリリースしてからSNSでの告知を一切していません。

まだリリース後1ヶ月で検索流入も見込めないため、利用しているユーザーはほぼ0に近い状況です。

※この記事を書く前日にTwitterプロフィールのURLを載せたところ、少しアクセス頂けてます。

なぜSNSでの告知をしていなかったのかというと、リリース当初はメールアドレスでの登録のみだったんですが「知らないサービスでメールアドレス入力するのはハードル高いかな…」と思い、Twitter / Googleログイン機能を実装後に宣伝しようと考えました。

実装後もちょこちょこ手直しして、ようやく満足いくサービスになったため、今週末にリリースしたことを告知する予定です。

また、唯一の収益源である広告に関しても今のところ掲載はしていません。

まずは使って頂かないことには話になりませんので、広告の掲載は満足して使って頂けるサービスになるまで育ててからでも良いかなと思った次第です。

「収益なんてどうでも良い」は言い過ぎですが、それよりも純粋に人に使って欲しいという気持ちの方が強いです。


費用

ドメイン、サーバ、メールすべてAWSを利用しています。

4月分の費用は合計で$30.68(3,964円 ※2022-05-18時点)です。

下記が内訳のグラフと詳細になります。

※前情報として、リリース当初の構成はALB(ロードバランサ) + EC2インスタンス + RDS + S3の構成だったんですが、考え直して今はLightsailのみで構成しています。

AWS4月分の費用(グラフ)
AWS4月分の費用(グラフ)
サービスRegistrar($)Relational Database Service($)Lightsail($)税金($)Route 53($)VPC($)S3($)CloudWatch($)EC2 ELB($)CloudTrail($)EC2 その他($)Key Management Service($)EC2 インスタンス($)SES($)SNS($)WorkMail($)合計コスト ($)
サービス 合計129.04470757025.27517035142.791.5075280.0560.00222820170.000360.0001484250.0000770.00001464390000030.6762341922
2022-04-01129.04470757025.27517035142.791.5075280.0560.00222820170.000360.0001484250.0000770.00001464390000030.6762341922
AWS4月分の費用内訳

Registrar

.comドメインの年額の費用です。


Relational Database Service

リリース当初の構成は、ALB(ロードバランサ) + EC2インスタンス + RDS + S3の構成だったのですが、毎月の費用を考えて1週間ほどでLightsailに切り替えてます。

この時のAmazon Auroraの費用になります。

1〜2日くらいしか稼働させていないので$9で済んでいるといった感じです。


Lightsail

AWSのVPSサービスです。

月$5のプランでOSはAmazonLinux2を使っています。

今はDockerで稼働しています。


Route 53

Route53はAWSのDNSサービスです。

tumigameのwebやメールのDNSを管理しています。


VPC

VPCは特定のことをしなければ無料なんですが、Lightsailへ移行する前にEC2インスタンスからS3へLANで通信する際のエンドポイントを追加する際に、誤って有料のインターフェース型で追加したために発生した費用だと思われます。

S3はVPCの外(グローバル)にあり、EC2からアクセスすると本来はグローバル(WAN)での通信になるのですが、これをエンドポイントを追加することにより、そこを経由してLANでアクセスすることができます。

このエンドポイントは大きく分けて2種類あり、ゲートウェイとインターフェースがあるのですが、最初誤って有料のインターフェースで組んだことが原因です。


S3

TUMIGAMEは画像アップロード機能があるので、それらのリソースの格納先にS3を使用していました。


CloudWatch

サーバ監視費用です。

しきい値を超えたらメールで届くように設定しています。


EC2 ELB

Lightsail移行前にALB(アプリケーションロードバランサ)を使用していたため、それの費用になります。


CloudTrail

EC2から追加したエンドポイントを経由してLANアクセスできているかのログをCloudTrailで出力した時の費用だと思われます。


EC2 その他

データ転送量とかでしょうかね…。

すみません、よく分からないですが少額なんで気にしないことにします。


終わりに

ドメイン費とRDSが高く付いてますね。

今はLightsailのみで構成しているため、来月以降はもっと安くなるはずです。

収益と費用、アクセス数等については毎月このブログで残していきたいと思っています。

広告を掲載するのはまだ先の予定なので、しばらくは費用とアクセス数のご報告となりそうです。

今週末にTwitter上で告知した後の反応なんかを記事にできたらなと思います。

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

商いは牛の涎(あきないはうしのよだれ)

商売は細く長く垂れる牛のよだれのように気長に辛抱強く続けることが大切という意味のようです。

商いは牛の涎(コトバンクへ飛びます)

何気なくそれっぽいことわざを探していて見つけたのですが、とても共感できることわざですね。

それではこのへんで終わりたいと思います。

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

この記事が少しでも参考になりましたら幸いです。

タブレットを見ている男性

ブログを見てもらうにはどうすれば良いか?

この手の記事を見ると、ロングテールキーワード使ってSEO対策してSNSで拡散…等の小手先のテクニックがよく書かれていますが、本質は違うと思っています。

「いかに興味を持ってもらえるか」に注力すべきだというのが僕の見解です。

そしてこの「いかに興味を持ってもらえるか」を達成するための方法について、実際に僕が意識している内容を踏まえてまとめてみます。


共感される内容であること

諸々の条件を端折って極端に言うと、「情報」より「共感される内容」を書いた方がブログを見てくれる確率が上がると思っています。

これの根拠として、自分が調べたい内容をグーグルで検索した時に表示されるブログがいわゆる「情報」になるわけですが、情報をそこで得た後もそのブログを何度も訪れたくなるか?と言われると、そうでない事の方が多いですよね?

技術系の記事がまさにそうなんですが、どうして良いか分からないエラーで躓いているとして、エラーメッセージをググって出てきた情報をありがたく拝見しますが、それでそのブログのファンになった試しが僕には無いのです。

それよりも、その人の熱意だったり共感できる部分だったりでファンになることの方が圧倒的に多いんですよね。

「人は理屈でなく感情で動く」と言われる通り「情報」ではなく「感情」つまり共感できる内容であった方がブログを読んでもらえるのではないかと思うのです。

補足ですが、こんなことわざがあります。

狡兎死して走狗烹らる(こうとししてそうくにらる)

必要なときは重宝されるが用がなくなったらあっさり捨てられるという意味のことわざです。

用がなくなったら二度と訪問されないブログより、継続して読んでもらえるブログにしたいですよね。

共感される内容を書くにはどうすれば良いか?

変に意識して書いてもおそらく「バレる」と思うので、ブログを楽しむコツにも書きましたが変に意識せず自分の考えを書くのが大事だと思います。

自分が世の中に対して不満に思っていること、理不尽に感じていること、会社に対しての愚痴などは他の人も当然感じていることなので、自分の思ったことありのままをつらつらとブログに書けばそれだけで良いはずです。

伝わる人には伝わります。


他のブログには無い価値があること

たとえばアラフォー会社員未婚の男性の生活と、アラフォーニート未婚(子供部屋おじさん)の男性の生活なら、どっちが興味湧くでしょうか?

当然後者だと思います。

どこにでも居る会社員の男性より、ニートで子供部屋おじさんの男性の方が希少価値が高いため「この人の普段の生活ってどんなだろう?」「収入源はなんだろう?」「結婚とか考えていないのかな?」といったように興味が湧くはずです。

僕も実際にこのような男性がやられているYoutubeチャンネルに登録しており、ハマっていた時期がありました。

念の為リンクを貼っておきます。

Marimonちゃんねる

失礼を承知で書きますが、エンタメとして面白いです。

また、昨今はユニークであるだけで自分の協力な武器になると感じます。

2年以上毎日すき家を食べ続けているマナリスさんをご存知でしょうか?

その人はただすき家を毎日利用しただけでテレビに出演し、Twitterのフォロー数も5万人以上居ます。

立派な有名人です。

さらには、マナリスさんがメルペイの招待コードをツイートしたら、なんと数日で数万ポイントを獲得したのです。

「メルペイの招待ポイント全部すき家で使う」SNSで公約 → 数万ポイントが発生、130日以上すき家で食べ続ける鉄人が話題に

ちょっと脱線してしまいましたが、ユニークであることの価値が分かって頂けたと思います。

ユニークである方が興味を持たれやすいというのは、ブログにも言えることだと思います。

どうすればユニークなブログになるか?

これもブログを楽しむコツで書きましたが、ブログで収益を上げようと意識するとそれだけでどこにでもある量産記事ができあがるので、そういったブログのファンはおそらく居ないでしょう。

なので「収益を上げようとせずありのままの自分の考えを書きなぐる」ことが読まれるブログになる近道だと僕は思います。

自分が得意としている分野のことだったり、会社の愚痴や夫の愚痴、世の中に対して不満に思っていること理不尽に感じていること、人との距離の詰め方離れ方とか、なんでも良いと思います。

そのうえで人とちょっと違う部分があれば、それを前面に押しだすことを意識すると良いのではないかと思います。

人と違う部分なんか無い…という人も居るかもしれません。

こうなりたいというビジョンはあると思うので、それに向かって行動している様子を書くだけでも他のブログと差別化できると思います。

「営業畑からエンジニアを目指す道のり」とか「主婦がブログ収入を得るまでの道のり」など、今はユニークなものが自分の中に無くても、道のりにフォーカスすれば自然とユニークになると思います。


誰も自分に興味無いことを念頭に置いて記事を書く

これも重要な要素だと思います。

上述した「いかに興味を持ってもらえるか」と矛盾するように思われるかもしれません。

分かりやすくするため、これも上述したマナリスさんを例にします。

2年以上毎日すき家を食べ続けていると聞いて「どんな人なんだろう?」とか「健康面大丈夫なんだろうか?」とか「そもそも飽きないのか?」とか、様々な疑問が出てくると思います。

これはそのまま興味に直結して、その人に注目することになりますよね。

ではマナリスさんの好きな女性のタイプや好きなアニメ、今プレイしているゲームはどうでしょう?

全くもって気にならないですよね?

それより「健康面は大丈夫だろうか?」という疑問に対して回答になり得る健康診断の結果とか、医者になんて言われているのかとか「そもそも飽きないのか?」という疑問に対しての回答の方が気になりますよね?

つまり、興味の対象はその人自身ではなく、その人を取り巻く環境にあることになります。

そのため、ブログに書く内容は自分の持っている情報にフォーカスして書くべきというのが僕の見解です。

「今日こんなことがあってね、こうだったの!」「聞いてよー、今朝足つっちゃってさー」「風邪だと思ってたらコロナだった」とか言っても、芸能人じゃあるまいし、そんなもの興味ある人なんて居ませんよね。

ついつい聞いてもらいたくなるのは人として分かるんですが、誰も興味ない自分語りをブログでやってしまうと誰にも読まれなくなってしまうので注意が必要です。


まとめ

最後に、ブログを見てもらうにはどうすれば良いか?についてまとめます。

  • 共感される内容であること
  • 他のブログには無い価値(ユニーク)を提供する
  • 自分語りの記事を投稿しない

これを意識するだけで、ブログは誰かの目に留まりやすくなるはずです。

今はまだ誇れるような実績も無いので、断定はできませんが…。

今回はこのへんで終わりたいと思います。

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

お互い頑張ってブログをコツコツ育てていきましょう☺️

楽しそうな男女

ブログを楽しむコツ

最近ブログを書くことが楽しくなってきたため、ブログを楽しむコツ、続けるコツみたいなものを書いていきたいと思います。

(現時点でブログ立ち上げ4ヶ月で記事数も30ほどなので偉そうには言えませんが…)


稼ごうなんて思わない

もうこれに尽きます。

ブログで稼ごうと調べると、大抵どの記事でも言ってることは同じです。

「ロングテールキーワード(検索されやすいキーワードは大手が占めているため、あまり検索されないキーワードで攻める)」とか「SEOを意識して〜」とか「単価の高い商材を〜」とか。

これらを意識して書こうとすると、どのブログでも同じこと言ってる量産記事ができあがるんですよね。

ありていに言うとつまらない記事です。

僕もサブの収入としてブログで稼ぎたいと考えていたため、過去記事でこのようなつまらない記事を書いていました。

参考までに下記の過去記事を見て頂ければクソつまらなさが分かると思います。

座り仕事の肩こりグッズ3選

※ちなみに「デスクワーク」だと競合が多いので、敢えて「座り仕事」というタイトルにしています。
※これが上述した「ロングテールキーワード」の手法です。

自分でも「つまらない」という自覚があるので、当然書いていても苦しいだけです。

なのでこの時の更新頻度はまばらでした。

この「稼ごうなんて思わない」を念頭に置いてブログを続けた方が、結果的に収益に繋がると思います。

※これについては後述します。


自分の考えを書く

「書きたいことを書く」だと何を書いて良いか分からない場合もあるかなと思ったのと、Youtuberや芸能人でない限りそんなに毎日面白いイベントがあったりしないと思うので、出来事を書くのは難しいですよね。

なので自分の考えを書くというのは続けやすいと思います。

実際に僕もこの手法で、最近はほぼ毎日更新しています。

しかもこの「自分の考えを書く」ってすごく便利で、何かに対して思ったことを書けば良いだけなのでほとんどネタに困らないし、最近のニュースに対してなら話題性もあるし、何より書きやすいんですよね。

そして楽しいです。とても。

「自分はこう思っている」とか「ここが納得いかない」とか、自分の普段感じている世の中に対しての不満だったり愚痴だったりをぶちまけられるので、フラストレーションを良い意味でブログで解消させています。

内容は本当になんでも良いと思います。

夫の愚痴だったり、上司の愚痴だったり、人生疲れたとか。

そういうのをつらつらと書いていると、共感してくれる人がきっと現れると思います。

その人がブログのファンになってくれたりするかもしれません。


ありのままを書く

「こんなこと書いたら嫌われるかな?まずいかな?」とか「炎上しちゃうかな?」とか「こんな記事面白いのかな?」とか、そういったことは考えないで良いと思います。

というより、考えない方が良いという方が正確かもしれません。

根拠として、会話しててもつまらない人って居ますよね?

まわりに話を合わせたり、自分の意見を言わなかったり、何を聞いてもその人となりの人間味を感じられなかったり。

なぜそうなるのか、その本質は一緒で「嫌われたくないから」だと思います。

この嫌われたくない文体でブログを書いたとしても、誰からの共感も得られないのは察しが付きますよね。

なので、ありのままを書くというのがとても大事だと僕は思います。

ありのまま書くもうひとつのメリットは、とにかく文章がスラスラと出てきます。

上述した無理して稼ごうとする記事を書いていた時は、とにかく文章が出てこないんですよね。

なにせ自分の書きたいことではないのでモチベーションも無ければ、どう書けば商品が売れるか?しか考えていないので、自分の頭の中に書くべき文章は当然ありません。

その点ありのまま書くというのは、思っていることを書けば良いだけなので、スラスラと書けます。

※僕は文章を書くのが大の苦手だったんですが、これを意識するだけで自分でもビックリするほど文章を書くスピードが速くなりました。

そもそも、ブログというものは「書きたいことを書く」「自分の持っている情報を発信する」という文化であったはずで、ここ10年ほどで「稼ぐツール」にすげ変わった印象があります。

今より20年ほど前はインターネット黎明期で、いろんなユニークなサイト(ブログはほとんど無かった気がします)があってとても面白かった記憶があります。

もちろん今も探せばあるのでしょうが、YoutubeだったりTwitterだったり、大手のプラットフォーム上で提供された遊びを楽しむだけになってしまった、そんな印象です。

話が脱線してしまいましたね。

つまらない人の話は誰も聞きたくないので、ありのままの自分の肉声を届ける方が、きっと面白いブログになるはずです。


ブログを書くのを習慣化する

上述したように、文章を書くのが苦手、というより苦痛だったんですが、日々ブログを更新し続けていると段々と楽しくなっていることに気づきました。

今では自発的に書きたいと思うほどには楽しめています。

堀江貴文さん著書の「ゼロ」という本でも「好きだから没頭するのではなく、没頭したから好きになるのだ」といったような言葉が書かれていました。

僕がブログを書くのが好きになったのもこれに当てはまるのだろうと思います。

おそらく、本質は続けられていることによって自己肯定感が上がり、それで楽しくなるのではないだろうか?というのが僕の見解です。

「ちゃんと続けられている」「自分、結構やるじゃん」「続けられている自分が好き」という好循環が生まれるのではないかと思います。

なので、ブログ投稿を習慣化することをおすすめします。


まとめ

最後に、ブログを楽しむコツをまとめます。

  • ブログで稼ごうなんて思わない
  • 自分の考えを書く
  • ありのままの本心を書く
  • ブログを習慣化する

「ブログで稼ごうなんて思わない」ブログの方が収益に繋がると考える理由についてですが、第一に、稼ごうとしてブログを書き続けることが困難だと思うからです。

経験がある方も居るかと思いますが、ブログはとにかく挫折する人が多いです。

ただでさえ挫折する人が多いブログを、それも収益化をメインにして続けることは到底できないはずです。

また、上述したように差別化出来ていないつまらない量産記事になりがちのため、収益を得ることは難しいでしょう。

なのでまずは「続けること」を目的とするべきだと僕は思います。

楽しくなくては続けられないので、自分の考えをありのまま書いて日々更新することをおすすめします。

自分の思っていることをありのまま書きなぐるのは、思いの外楽しいですよ。

好きこそものの上手なれ(すきこそもののじょうずなれ)

楽しんでやることによって上手くなる、楽しんでやることが重要という有名なことわざです。

なので、とりあえずは肩の力を抜いて、思ったことを書きなぐってみてください。

楽しくなるはずです。

これを見たあなたが有名ブロガーになることを願っています。

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

この記事が少しでも参考になりましたら幸いです。