tag:crieit.net,2005:https://crieit.net/users/stlwolf/feed
stlwolfの投稿 - Crieit
Crieitでユーザーstlwolfによる最近の投稿
2019-06-19T23:30:43+09:00
https://crieit.net/users/stlwolf/feed
tag:crieit.net,2005:PublicArticle/15130
2019-06-19T23:27:01+09:00
2019-06-19T23:30:43+09:00
https://crieit.net/posts/208f56095ca8e483481917ef0354ccf9
【禅Do】利用しているライブラリについて
<h2 id="導入したライブラリについて"><a href="#%E5%B0%8E%E5%85%A5%E3%81%97%E3%81%9F%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6">導入したライブラリについて</a></h2>
<p>とりあえず当時、Carthageの情報が結構出ていて使いやすそうだったので<br />
基本的にCarthageを利用してインストールする方針でやっていた。<br />
その中で対応していないものはCocoaPodsを利用するか、直接ソースを入れる形にした。</p>
<h3 id="Carthageで入れたもの"><a href="#Carthage%E3%81%A7%E5%85%A5%E3%82%8C%E3%81%9F%E3%82%82%E3%81%AE">Carthageで入れたもの</a></h3>
<ul>
<li><a target="_blank" rel="nofollow noopener" href="https://github.com/malcommac/SwiftDate">SwiftDate</a>
<ul>
<li>リマインド機能の日付操作の為に導入</li>
</ul></li>
<li><a target="_blank" rel="nofollow noopener" href="https://github.com/DeclarativeHub/Bond">Bond</a>
<ul>
<li>リアクティブプログラミング的なものを使ってみたかった為</li>
<li>全体設計の見通しの良さ向上の為など</li>
</ul></li>
<li><a target="_blank" rel="nofollow noopener" href="https://github.com/xmartlabs/Eureka">Eureka</a>
<ul>
<li>設定画面でリスト型テーブルやForm作成を簡単にするための導入</li>
</ul></li>
<li><a target="_blank" rel="nofollow noopener" href="https://github.com/delba/Log">Log</a>
<ul>
<li>開発用途。デバッグのしやすさ向上の為</li>
</ul></li>
<li><a target="_blank" rel="nofollow noopener" href="https://github.com/Quick/Quick">Quick</a>
<ul>
<li>開発用途。テストコードを書く為(なおちゃんとテストコード書いてない模様)</li>
</ul></li>
<li><a target="_blank" rel="nofollow noopener" href="https://github.com/Quick/Nimble">Nimble</a>
<ul>
<li>開発用途。テストコードを書く為(なおちゃんとテストコード書いてない模様)</li>
</ul></li>
</ul>
<h3 id="CocoaPodsで入れたもの"><a href="#CocoaPods%E3%81%A7%E5%85%A5%E3%82%8C%E3%81%9F%E3%82%82%E3%81%AE">CocoaPodsで入れたもの</a></h3>
<ul>
<li><a target="_blank" rel="nofollow noopener" href="https://github.com/firebase/firebase-ios-sdk">firebase-ios-sdk</a>
<ul>
<li>(今もかもだけど)当時モバイルのアナリティクスとしてイケてる感じだった為導入</li>
<li>ユーザ動向を知るため</li>
</ul></li>
</ul>
<h3 id="直接入れたもの"><a href="#%E7%9B%B4%E6%8E%A5%E5%85%A5%E3%82%8C%E3%81%9F%E3%82%82%E3%81%AE">直接入れたもの</a></h3>
<ul>
<li><a target="_blank" rel="nofollow noopener" href="https://github.com/thii/FontAwesome.swift">FontAwesome</a>
<ul>
<li>各種アイコンに利用</li>
</ul></li>
<li><a target="_blank" rel="nofollow noopener" href="https://github.com/DylanVann/DatePickerCell">DatePickerCell</a>
<ul>
<li>設定画面でのCell操作の為に導入</li>
</ul></li>
</ul>
<h2 id="導入ライブラリのアップデート"><a href="#%E5%B0%8E%E5%85%A5%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88">導入ライブラリのアップデート</a></h2>
<p>とりあえず当然ビルドが通らなくなってため、各ライブラリの最新版を利用するように<br />
Cartfileを書き換えてアップデートしてみた。<br />
ただそもそも、Carthageの使い方を忘れていたので、思い出すために下記記事などを参考にした。</p>
<p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/s-harada/items/47295d653ef0cf34d540">Carthage について</a><br />
<a target="_blank" rel="nofollow noopener" href="https://www.raywenderlich.com/416-carthage-tutorial-getting-started">Carthage Tutorial: Getting Started</a></p>
<p>さらに元々、Carthageディレクトリ以下のBuild/Checkoutsもgit管理下においていたが、<br />
ライブラリアップデートを何回も試してる時に、いちいち削除が面倒になったのと<br />
下記の記事を読んだので、git管理化から外すことにした。</p>
<p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/mono0926/items/636819c42e96a8c4e12d">CocoaPods・Carthageでインストールした成果物はバージョン管理に含めるべきか?</a></p>
<h3 id="アップデート方法"><a href="#%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E6%96%B9%E6%B3%95">アップデート方法</a></h3>
<p>利用しているライブラリのうちほとんどは、Swift3へのアップデート対応等がされていたが<br />
Logライブラリだけはメンテが止まっていたので、forkして対応することにした。<br />
(代替のものを探したが方が良いが、とりあえずビルドを通すのが第一目標なのでそのまま利用)</p>
<p>直接ソースを入れるタイプのものも、Carthage対応されるようになっていたので<br />
Carthageを利用してインストールする方式に変更した。</p>
<p>メンテナンスされているライブラリはバージョン指定を外して<br />
最新版をインストールするようにした。</p>
<p>下記はSwiftのバージョンを3にして <code>carthage update --platform iOS</code> が<br />
問題なく実行できるようになった時点でのCartfile。</p>
<pre><code># Use libraries
github "malcommac/SwiftDate"
github "SwiftBond/Bond"
github "xmartlabs/Eureka"
github "Quick/Quick"
github "Quick/Nimble"
github "thii/FontAwesome.swift"
github "DylanVann/DatePickerCell" ~> 1.0
# Own repos.
github "stlwolf/Log"
</code></pre>
<h3 id="備考"><a href="#%E5%82%99%E8%80%83">備考</a></h3>
<ul>
<li>carthageでのインストールが成功するところまで行き、Xcode上でライブラリを<br />
利用しているコードでErrorになってる箇所を修正することができる状態にはなった。</li>
<li>Bondライブラリがアプリに入れた時期から大きな変更が入っているので、利用方法を含めて<br />
再度使い方を調べないと最新版のコードを利用できそうにないことが判明。(ReactiveKitに組み込まれてる?)<br />
公式Docと下記あたりを参考に別途キャッチアップする。<br />
<a target="_blank" rel="nofollow noopener" href="https://www.raywenderlich.com/667-bond-tutorial-bindings-in-swift">Bond Tutorial: Bindings in Swift | raywenderlich.com</a><br />
<a target="_blank" rel="nofollow noopener" href="http://grandbig.github.io/blog/2017/07/31/swiftbond-1/">Bond, SwiftBondを使ってみよう! - Takahiro Octopress Blog</a></li>
</ul>
stlwolf
tag:crieit.net,2005:PublicArticle/15085
2019-06-10T13:53:49+09:00
2019-06-19T23:31:31+09:00
https://crieit.net/posts/Swift2-3-Swift5
【禅Do】Swift2.3のアプリをSwift5対応にしたい
<h2 id="大枠"><a href="#%E5%A4%A7%E6%9E%A0">大枠</a></h2>
<p>数年前にSwiftの勉強のために作ったiOSアプリを、リリース後に全く<br />
アップデート対応していなかったので気がついたらSwiftのバージョンも5になってた。</p>
<p>このアプリのWeb版出したりとか諸々やりたいことが出来てきているので<br />
とりあえず最新版のSwiftに対応して一度アプリを<br />
更新リリースするところまでやることにした(頑張る)</p>
<h2 id="前提条件"><a href="#%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6">前提条件</a></h2>
<ul>
<li>1,2年ほどiOSアプリ周りを全く触ってなく以下は忘却されている
<ul>
<li>Swiftの文法、機能について</li>
<li>Xcodeでの各種設定について</li>
<li>リリースまでに必要なりソース、手順について</li>
<li>導入したOSSライブラリについて</li>
</ul></li>
<li>アプリ自体の機能はかなり控えめなので、コード量自体は多くない</li>
<li>当時リアクティブプログラミングの勉強を兼ねて<a target="_blank" rel="nofollow noopener" href="https://github.com/DeclarativeHub/Bond">Bond</a>というライブラリを利用している
<ul>
<li>RxSwiftとかを入れるほど大した機能はなかったので、機能が控えめなBondを入れた経緯</li>
<li>ただ当時から大分実装が変わっているようなので、コレの置き換えが一番手間かかりそう</li>
</ul></li>
</ul>
stlwolf