About Kazuhide Oki

プログラミングを始めたきっかけ

美容師と働いている時に、お店で提供している雑誌をタブレットに置き換えるということがありました。その時に「雑誌のためだけににタブレットを購入するのはもったいないのではないか?何か役に立てたい!」と考え、業務用アプリを作ろうと考えたことがきっかけです。
勉強方法は基本的に独学です。書籍を買って読み込んで、実際にコードを書いてエラーを出して直して。その繰り返しです。一歩ずつできることが増えていくことが楽しくて、最初の頃は仕事や家族の時間以外はほとんどプログラミングをしていました。
常に何か作りたいものがあり、それに突き進んでいたのが身につける助けになったと思います。店内業務アプリ、お店のウェブサイト、美容室向けウェブサービス、英語学習辞書アプリなど様々なものに挑戦していきました。やりたいことを実現するために新たな言語、フレームワークやライブラリなどを一つづつ身につけては形にしていきました。すぐにユーザーにフィードバックを得て改善していける環境もあったのでそれもモチベーションと学習効果の向上に役に立ったように思います。
時には複雑なエラーが出てしまいにっちもさっちも行かなくなったり、全く新しいことに挑戦する時に立ち止まってしまうこともありました。そんなときは技術的な質問のできる人が周りに何人かいて、非常に助けになりました。色んな人のアドバイスやメンタリングのおかげで、新たな設計のアイデアやより効率的な実装に触れることができていたのも、前に進み続けることができた大きな理由だと思います。

主な技術スタック

Typescript(Javascript)

きっかけは最初の業務アプリをSPA風に作るためにjQueryを学んだことがきっかけです。ウェブサイトを作る時に外部APIを利用するためにある程度ロジックを考えてかけるようになりました。そして、業務アプリをReactで書き直す時にJavascript自体を本格的に勉強することになりました。
ある程度Javascriptでロジックを組めるようになった時に、ちょっと複雑なことをしようとするとエラーを頻発させてしまうのが気になっていました。その時に型付きの言語Typescriptを導入することにしました。結果的に型をしっかり考えて実装できるようになり、エラーも減って書きやすくなりました。もう素のJavascriptでは書けません。

React

最初に作った業務アプリはWordpress + jQueryでした。しかし、より良いモノに作り変えたいと思いSPAに作り変えることに決めたことがきっかけです。どのようにUIを構築していくのか?という基本的な考え方がReactを通じて身についたと思っています。
また、Nextjsでフロントエンドとバックエンドを両方書くという経験もしました。フロントとバックで実行されること、利用できるライブラリの違い(それに伴うエラー...)によってウェブサービス全体の設計や責務をどのように分離すればよいかということを考えるようになりました。
またUI構築のライブラリとして主にMaterial-UIを利用しました。それなりのデザインをサクッと作れるようになり、そこからじっくりカスタマイズすることを通してデザイン面も意識するようになりました。

クラウド GCP Firebase

美容室向けウェブサービスの初期のアーキテクチャはVPSのLinuxサーバーにNodejsとMysqlを立ち上げるというものでした。最初はLinuxの設定に苦戦した以外はしばらくの間は順調でした。しかし、ある時ユーザー認証周りのライブラリとデータベースの絡んだ複雑なバグが発生してしまい、修復困難となってしまいました。その時にクラウドへの移行を決めました。
アプリのデプロイとデータベースをGCPに、ユーザー認証をFirebaseにしました。とてもシンプルな構成ですが、以前よりそれぞれのサービスが疎結合になりました。インフラ周りをクラウドに任せることで、自分が集中したいウェブサービス本体に時間を割けるようになったのが良かったです。
FirebaseはFlutterでのアプリ開発にも利用しています。

Flutter

Flutterでのアプリ開発にも挑戦しています。
アプリ開発という新しい分野、新しい言語とフレームワーク。新しいことを学びながらモノづくりしていくというのは常にワクワクするものです、謎解きをしながら冒険しているような感覚ですね!
Reactの関数ベースのフレームワークに対して、FlutterはDartをクラスベースでUIを構築していきます。そこが最初とっつきにくいところでしたが、慣れてくるとReactのJXSように入れ子構造でUIを構築していくところに共通点を見出し、楽しく書けるようになってきました。
現在英語学習者向けアプリを開発中です。
トップページへ戻る👉