【iOSアプリ】AppAppのソースコードを公開しました。

どうも。Reoです。

先日(今年初めくらいに)GitHubのプライベートリポジトリが無償化されたので、先ほど自分のアプリやブログのリポジトリをBitbucketから移行をしました。

そのついでに、iOSアプリ「AppApp」のソースコードを公開しました。イェイイェイ

1年くらい全く触っていないコードなのですが、Swift4.2にだけは対応しておいたので是非落として使ってみてください。

uruly/AppAppで公開しています。

 

AppAppとは

今回コードの公開をしたAppAppというアプリについて少しだけ紹介します。リンク先をみれば動画等もあげていますので大体どんなアプリかはわかるかなとは思いますが。

AppAppとは

このアプリは、AppStore内のアプリにラベルをつけて整理・コレクトするためのアプリです。
もっと気軽に、もっと色んなアプリに触れる機会を与えます。

アプリのウィッシュリストを作ったり、好きなアイコンデザインをまとめたりすることができるアプリです。

 

以下このアプリのポイントをざっくり紹介します。

 

ShareExtensionでアプリ共有

ShareExtensionを用いて、AppStoreの共有画面からアプリをAppApp内に保存することができます。

アプリをコレクションする

保存したアプリはラベルごとに一覧にしてみることができます。

アプリのタイトル・開発者をWeb検索できる

保存したアプリをAppStoreで直接開くことができるだけでなく、アプリ名や開発者名で検索することができます。これ地味にとても楽しいです。

こんな感じのアプリです。

 

公開した理由

なぜAppStoreではなくGitHubでの公開なのかという理由についてです。

このブログを熟読してる方(存在するんか?)ならご存知かもしれませんが、このアプリは一度AppStoreにてリリースしたことがあります

リリースしたけれど、二度目の審査以降AppStoreのガイドラインに引っかかって、最終的にアプリ自体を消されてしまったとても悲しいアプリです。詳細は「【iOSアプリ】AppAppが販売停止に至るまでとこれからのお話。」に書いてあります。あの頃は辛かった。

 

まぁ簡潔にいうと、AppStoreのアプリのウィッシュリストはリリースできないってことです。

おそらく抜け道はたくさんあるんでしょうが、現状はリリースすることを諦めてしまったアプリになります。

抜け道を使って好きなアプリをそうでもないアプリに変えてしまうぐらいならリリースしないほうがいいやっていう気持ちもありました。

当時も以下のように言っていました。

今のと全く違うUIで、今のと全く違うコンセプトのものを「AppApp」として出す必要も意味もないんじゃないかなという結論です。

違うアプリなら違うアプリとしてリリースしたほうが良い。そういう結論です。

 

そして今、あれから1年ちょい経ちました。

当時有料でリリースしていたので即行コード公開すんのもなぁって思いがあったので今まで放置していました。わ、忘れてたんじゃないんだからねっ。

BitbucketからGitHubに移行するついでに(思い出して)公開してもいいんじゃない?と思って公開させていただきます。わ、忘れてたんじゃry

 

コードはKUSO

はっきり言ってコードはKUSOです。今の自分が見ると、うへぇと思ってしまう。Robinと比べるとまだ全然マシなんですけどね・・・。

当時は「ようやくprotocolというものを少し理解してきた」ぐらいのレベルで作成していました。ContainerViewとか存在も知らないときです。

フォルダ構成とかもわりとひどいです。

あとSwiftlintいれたら警告がBANBAN出てくるスタイルの汚さがあります。コロンの後はスペース入れろとかそういうあれです。今となってはこの辺が特に見てられないです。

 

あと、コードをコメントアウトしてそのままにしてあることが多いですね。gitあるんだから戻れるんだから消そうって言いたい。当時git使ってなかった説・・・・はないはず。Robinは最初のリリースまでgit使ってなかったのでその時の癖なんだろうか…

 

リファクタリングブログを書く予定

意味があるのかないのか正直わからないんですが、リファクタリングしようと思います。

そんなことをするより新しいアプリでも作ったほうがいい気もするし、本当にそんな時間があるのかもわからないので、予定は未定です。

でも最近Swiftの記事を全く書けてないので書きたいんですよね。最近は仕事でiOSをしているので、そこでやってることを書くわけにもいかず。なのでちょうど良いネタでてきたなぁと。

とりあえず3月中はブログ強化も兼ねてちょいちょい書いていこうと思います。

うるおいらんどに来てくれる人は、どちらかというと初学者の方が多いと思っているので(内容がナイヨウだから)、自分にとっては定石になってしまったこともそうでないことが多いかもしれないですし、少しずつ記事にしていこうと思います。

GitHubにissue作って、issueごとに記事を書いていく予定です。
 

ちなみに再配布はやめてくださいね。リリースするのもやめてね・・・。審査通ってるの見たら泣いちゃうよ。

とりあえずNo Licenseにしておきますが、ちょっと色々調べてみて変更するかもしれません。No Licenseは修正、配布、サブライセンスが禁止されているらしいのでよろしくお願いします。

 

ではでは。iOS開発をしない人でも最新版Xcodeがあれば落とせるので是非uruly/AppAppからcloneして使ってくださいな。

 

 

 

AppApp

Comments...

コメントは認証制です。詳しくは下記の注意をお読みください。お気軽にコメントお願いします!

Write a Comment

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

Related Memo...

記事を書くほどでもないけれどメモっておきたいこと

テスト投稿。

例えばiphone7 の画面サイズ

750 × 1334
半分375 × 667

iOS

UINavigationController + UIScrollView の組み合わせで使っている時に謎の余白ができる時

UINavigationController + UIScrollView の組み合わせで使っていて、UIScrollView 上に AutoLayout で上下左右0で View を設置しているのに、30px程度上にずれてしまうとき。

`navigationController.navigationBar.isTranslucent = false` にすると直るかもしれない。

ScrollView上のコンテンツとNavigationBarの重なっているところが透過していたら多分これで直せるはず。

通常のターゲットではちゃんと動いているのに、iOSSnapshotTestCase を用いたテストでだけこの対応が必要なのよくわからないけれど。。。

iOS

UITableView.RowAnimation の .none はアニメーションするよ

UITableView.RowAnimation の .none はアニメーションがnoneなわけじゃなく、デフォルトの設定を使うよという意味らしい。

The inserted or deleted rows use the default animations.

なのでアニメーションしちゃう。今更の気づき。

 

iOS
more