C++幼女先輩

プログラミング成分多め

ionic frameworkを触ってみる

緊急なお仕事が入ってきまして、ionic frameworkを触っています

ionic frameworkとは

Web/iOS/Android/PC のハイブリッドフレームワークの1つです
PWAのようなWebViewではなく、完全にネイティブコードの出力を行います
いわゆる下記の仲間になります

ハイブリッド

PhoneGap(Cordova)、Monaca、Capacitor

クロスプラットフォーム

Xamarin、React Native、Flutter、Kotlin Native・・

ハイブリッドとクロスプラットフォームの違いはここでは
ハイブリッドはUIをHTML+CSSで作り
クロスプラットフォームは専用のUIで作る事とします

ハイブリットフレームワークにした理由

スケジュールの関係から、WebデザイナーにUIを作ってもらう方がよかったからです
そのため、必然的にionicを採用することにしました

ionicインストール

インストールは非常に簡単でした
今回はAngularとCapacitorを使います
まずnodeとnpmを新しくしておき

npm i -g ionic 
npm install @ionic/angular@latest --save
apt install ng-common
npm uninstall -g ionic
npm install -g @ionic/cli


ionic start test_app --type=ionic-angular

これでテンプレートを作成できる

typeオプションでは下記の設定が可能だ

  • angular
    ionic-angularとの違いがまだわかってない
  • react
    reactも対応したらしい
  • ionic-angular
    angularとの違いがまだわかってない
  • ionic1
    過去の遺物なのでもう使わない

今後 Vue等も対応されるようだ

今回はTabアプリを選んだ

実行

ionic serve

これでブラウザで実行できる

f:id:murasame-labo:20200822044725p:plain

AWSのAmazonLinuxで色々はまる件

nginxで簡単なサーバをデプロイするタスクで、色々とはまった

タスク

nginxでRTMP通信を受けて、別のRTMPサーバにリレーするサーバの構築
ローカルのUbuntu(WSL)ではあっさり動いたので、AWSでもすぐできると思ったが、いろいろなハマリポイントがあった

インスタンス作成から設定

テストなのでmedium程度のインスタンスを作成しセットアップ
OSに悩んだが、なれたUbuntuもいいが、AmazonLinuxにした
インバウンド、アウトバウンドを設定する
RTMPなのでTCP1935を開け、疎通確認やHLSの取得に80も開ける。sshも開ける

インストール

nginx-rtmpモジュールはnginxをビルドする必要があるので、yumで開発ライブラリを入れる
AmazonLinuxはCentOS系で、yumで入れられるものが極端に少ない&古い
そのため、速攻でEPELを有効化する
そして yumを行うがyumがエラーになる
調べてみると、AmazonLinuxはyumのパッケージリポジトリにS3を使うらしく、VPCの設定からS3の許可をする必要があった
エンドポイントすら作成してなかったので、VPCにエンドポイントを作り、S3の許可を与える
yum出来た

開発に必要なツールをyumで入れ、nginx、nginx-rtmpのソースを落として、ビルド

www.servermania.com

Ubuntu例だが、設定は同じなので。

ソースビルドして実行するもエラー
このあたりはCentOS特有のセキュリティ強いので設定をする

nginx関連のユーザやグループを設定し、ファイルやフォルダに適切に権限を与え
存在しなく怒られていたディレクトリを作成
などなど行い、やっとHTTPが動くように

そこからnginxにRTMPの設定を行うも
vimの表示が壊れたり、コピーペーストするとゴミが入ったりで苦労した

結論

CentOS系はセキュアな反面、色々とハマる

尊敬するエンジニア、堤修一さんのYoutubeを見て

www.youtube.com

みなさん、ちゃんと堤さんのYoutubeを見て、チャンネル登録してくださいね!

私の思っている事(ただし出来てない事)と同じ事を説明していたりします

どうしても仕事が忙しくなると、アウトプットがおろそかになります
私も、アウトプットが最重要で、仕事を断ってでもアウトプットすべき
アウトプットしてたくさんの人にリーチすれば、仕事を選ぶ幅が広がりますからね

ただ、私の場合は目の前の仕事に忙しく、アウトプットを後回しにしているのだ・・
それは本当に良くないので、再度気を付けようと思う

あとは、アウトプットメディアについても興味深い。

アウトプット方針を考えなければならない
今後は下記のようにアウトプットの方針を決めようと思う

Qiita

私はお手軽でエンジニアがなんだかんだ観てくれるので好き
技術に特化していて、非常に技術記事を書きやすいのが素晴らしい
ただし、xxさんの情報ではなく、Qiitaの情報となるので、名前を売るには弱い
なので、お手軽に技術情報やポエムをのせていこうとおもう

はてな

Qiitaに比べると技術記事を書きにくい(Markdownが厳密)であるが
個人の名前を売るには、これがベストである
Qiitaに書きにくい会社の運営の事や、自分を売るための技術ブログ
として、今後はメインに据え置く事にしよう
技術ブログとしてはQiitaと同じ内容を投稿することになるかもしれない

note

テストで書いた事はある程度だが、noteは現在3つの種類の記事が書ける

無料記事

技術の話はオープンに流したいので、全部無料で書く
多分最もライトな書き込みにするかも。
定期購読もあるのでファンを増やす事が目的にしよう

定期購読

定期購読をする読者=ファンなので、マネタイズは考えていないが、ファンをつけて、ファンが喜ぶ ふんわりした内容を書いてもいいかもと思ってる
唯一、読者に媚びるメディアとして、技術的な事はIndex程度にして、それ以外の事を書いていこうかと思う
進捗報告的な物を書くかもしれない

有料記事

今のところ有料記事を書く予定はないが、どうしようかなあ・・・
めちゃ頑張った記事は読ませたいので無料に置きたい
もしかしたら営業用や、会社経営のリアルな数字を出すときに使うかもしれないが
基本的に今はノーアイディア

Youtube

個人的には、これからボイスログだと思っているので、技術VLogを流行らせたい
今のところテスト

Twitter

なんだかんだ必須のメディア
もっと積極的にチラシの裏しよう

go testify

いま仕事で、一斉にTestを書いている
つまり、今までのツケが回ってきた

Goのテストフレームワークの中でも、Testifyが一番シェアが多いように思われる
testifyにはAssertion、mock、suiteなどがある
今日始めたばかりでノウハウはまだないが、いずれまとめたい

いきなり法人口座必要と言われた件

取引先からいきなり支払日の直前に
法人口座じゃないと振り込めないので法人口座作って下さい
といわれ、まだ支払いをもらっていない・・

まあ、会社なのに個人口座使ってるのが悪いのだけど
近年の銀行は、オレオレ詐欺のせいで、全然口座作ってくれず
5回ぐらい断られているため、いまだに個人口座を使っている

大抵の銀行は固定電話が必要だ
今の世の中、携帯電話だけで十分じゃないか?
そんなこんなで、お金もらえないんで、頑張って法人口座作るため色々まわってるよ

コロナの影響で外出自粛のなか、法務局いって登記をとったり、区役所で印鑑証明とったり・・

往くプロジェクト、来るプロジェクト

コロナの影響で、もう無茶苦茶だよ

28日に今月で契約終了(社内のリモートワーク化等でタスクのアサインなどが出来ない状態)
と、直前で言われ
また別件は31日に、来月からの新規案件の相談で見積とチームビルディングを今日中にお願いします
と言われ、翌日に予算通ったのでプロジェクトスタート

まあ、コロナでばたばたしてるので、仕方ないんですけどね

知人はいきなり終了したり、案件がいきなり消えたりでバタバタしてる

Android用のプラグイン。AARなんてものが増えたんだね

UNITY用のAndroidプラグインでありますが
昔作った時はNativeでC言語インタフェースを作り、Dllimportで読み込んだ覚えあるんだけど
今回は、AndroidJavaClass(AndroidJavaObject)で呼び出す方針にしました
Cインタフェースだとネイティブメモリ管理が複雑だけど
こっちはかなり楽だ

で、それとは別の話だけど
今まで通りJarファイルを作ろうとしたら、AndroidArchive AAR形式というのがあったので
調べてみたところ
JARはJavaのクラスファイルしかないが、AARだとManifestやリソース等も全部含めることが出来るらしい
今回の案件はManifestを含める予定なのでAARで出力してみた
まあ、色々調べるとManifestのコンフリクト等で苦しむ可能性あるし、アプリ共通のManifest使えばいいんだけど

とりあえず、新しいものを試したかったの

で、例のごとくAARファイルはZip圧縮になっているのでUnzipしていけば、ManifestやらリソースやらJarファイルが出てきます
もちろんJARファイルもZip圧縮なので解凍すればClassファイルが取れます