杏z学習帳

Swift、Unityなどを中心に節操なく手を出してますまる

ツイートスクラップ作り直した!(2019/04/24)

[雑談]ツイートスクラップ作り直した!

ツイートスクラップをv3.0.0としてアプデリリースしました🎉

久々にアプリのリリース作業をしたので新鮮でしたね!
(業務ではやってるけどだいたい自動化されてる)

前のバージョンが v2.7.2 ぐらいでメジャーバージョンが上がっているのでなにか大幅に変わったのか!?
となるかもですが、ユーザ的にはさほど変わってないという印象になるはず。

実際アプリが提供している基本的な機能は変わっていませんし。 アプデ内容としては、

の2点です。
いずれもユーザ的には知らんがなっていう感じでしょうね😇

TwitterKit はいうまでもなくサポートが終わっているのと以前書いたとおり僕の端末だけ(?)変な動きするから気持ち悪いということがあって外したかった。
それで、これを外すとなるとアプリ機能的にも分かる通りコアなところなので、大幅な改修になることは想像に難くないというところで、
以前から作りがひどすぎてどうにかしたさが爆発しそうだったのだけれど、コレを機に爆発したっていう感じです(笑)

リファクタ〜〜とかっていうレベルでは効かず作り直したって言ったほうがいいレベルでやりました。
(これだけで如何にやばかったかわかるはず...それ作り直したほうが早いですよ画像よろです(笑))

現状というなの惨状

以下ずっと思い出話とかポエムとか僕語りです。

ツイクラを作った時期は 2016 年ごろらしい(まじか)のですけど、
当時の僕のスキルセットは PHP/Cocos2d-x をメインで Objective-C 少々っていう感じで Swift 何ぞは触っていなかったのですけど、
そろそろ Swift もさわれるようになりたいな〜とか思って、当時はまだ2系だったと思うんですけど触ろうと決意し、
単に勉強するだけでは続かないからアプリでもつくってみるか〜〜で作ったのがツイクラです。

その時ちょうど Twitter のいいね(まだふぁぼだったかな?)に不満があって、
ツイートの埋込タグを使えば認証とかなくてもツイート表示できるやん!というひらめきもあって、
ちょうど作るのに手頃(単純な機能だし難しくないし)ってことで作り始めたもんです。懐かしい。
なので、メンテする気もさらさらなく使い捨ててやんよ!な勢いで作っていましたし、
アプリ作りは手段であって目的は Swift に慣れるっていうことだったので設計の「せ」の字もなく、中身のコードはは初心者のソレなのです。

そんな世界に何が誕生するかは、、おわかりでしょう?

小太りな神ViewController

です(笑)

とはいっても、基本的にはツイートをIDを保持してそれをもとにリスト表示するだけのほんとミニマムな機能しか有していないアプリなので、
実際これでも全然構わないと個人的にはおもっています。

メンテしないのなら

ここで僕は選択を誤ったと思う

リリースして以降は順調に(?)放置していたのですが、
ある日そんなアプリにもレビューが付きます

タグ削除は Realm から消すだけですし、表示がおっそいってのは、埋め込みタグを無理やり並べてリスト表示しているのでそりゃ遅いっていう話。
ちょうどその時アプリとか作っていなかったので、暇だしやるか〜と。
TwitterKit とか使えばそんなに手入れなくてもいろいろやってくれるらしいし。
と、対応することは決めたものの、依然として今後メンテする気はあまりなく、なるべく簡単に修正箇所は少なく影響範囲も小さくということだけを考えて作業したのです。

それで生まれたのが...

二人目の小太りな神ViewController

(笑)
なぜ二人目なのかというと、Twitter連携しているときといないときで、画面を分けたからですね。
分けるのはまぁいいのだけれど...
修正箇所は少なく、影響範囲は小さく...
( ゚д゚)ハッ!
画面を分ければ既存機能には影響しないやんけ!
やることは一緒でデータの取得と表示のさせ方が違うだけだからコードはほぼコピペでやったら修正箇所は少ないのでは!?
という鬼のような考えをし、そして実行しました。過去の僕アホすぎる。
とうことで、二人目の神が爆誕です。👼

このアプリは Swift を触るという目的のもと作ったものだし、すでにそれは達成されているし、たんにきまぐれでアプデするだけなんだから...アプデだけしたらあとは放置するからいいもん!!とかってまだ思っていた。
(この時ちゃんとやってりゃ、今こんな苦労はしてないんやで。。)

そして神が二人になったことで神はあらたな特技・テレパシー(Notification)を習得しました。
神々の交信をテレパシーでやり取りするという。地上の作法?そんなのは知らん!!みたいな勢い
(なんかやっちゃいかんよ!っていうのをすべてぶち抜いてる感じ😇)

ここまで来ると創造神である僕も手に負えなくなってきているのは明らかでした。
でもいいのです、アプデしたらもうみないんだから...あとは神々がいいようにしてくれるのだから...

僕が思っているよりも僕はだいぶちょろいやつだった

そんなこんなでカオスな世界を内に秘めたアプデは無事レビューを通り、ユーザの手元に届き...
なんとレビューが更新されました。

「対応ありがとうございました!☆5!!」

...。
返信来たー!!しかも5になおってきたーー!!ヤダっ嬉しい!!!(ちょろすぎる)
今後も定期的にアプデすることが決まった瞬間です(笑)

ということで、コレ以降数少ないレビューとか依頼とかがくるとポチポチ手入れをし続け、
そんなことしていると愛着が湧くので、あれもこれもしてみよっかな〜と頼まれてもいないことをやってみたり、
Swift はバンバン破壊的な変更を加えてくるのでそれの確認の場としてみたりと...

僕がリリースした中で、リリース後も唯一現在まで定期的にアプデしているアプリにまで昇格したのです。

そして転機が訪れる

定期的に手入れているとはいっても、ぶっちゃけ触るの本当につらいんですよね。
作業していると「なんでこーなってるの?」「。。わからん、こいつは雰囲気で動いている」「神強すぎるワロタ」の連続で...。

作り直したい!!
でもめんどくさいよね!?
だけど、今後も技術検証とかするにあたって触るでしょあなた..耐えられるの??
いやでもでも、耐えられなくなったら放置したらいいのでは!?新しい別のなにかつくったらいいのでは!?
(デイリーで20-30ユーザぐらいなので収益うんたらっていうのはないので気持ち面さえ踏ん切りつけばいつでも切れるっちゃ切れる。気持ちさえ...)

などと、途方にくれつつあった僕にも転機が...
突如降ってきた脱TwitterKit欲という贈り物(誰からかは知らん(笑))

いつやるの?でしょ!!!! 平成も終わるし!!!

それで無事今回のアプデを迎えております。感無量です。
(完全にユーザ置いてけぼりなのでそこはすまん)

新しい世界

まずは2人の小太り神を抹殺し、ビルドエラーというなの断末魔を聞きながらなんとかまっさらな大地まで持っていき...
そこから少しずつ新しい秩序(MVVM風)のもと構築しなおし...
神が実在しない世界(心に居ればいいんやで)になりました!

これでなにか修正とか機能追加するときに気が楽になります。
ありがとう神。おつかれさまでした。

ってことで、なんかバグってたら何経由でもいいんで教えてください!🙏