Swift 4のUserDefaultsライブラリ: Default

f:id:vasilyjp:20180927090637j:plain

VASILYのiOSエンジニアにこらすです。

f:id:vasilyjp:20171020193401j:plain

今回のテックブログではiOS・macOS・watchOS・tvOSのUserDefaultsにユーザー設定などを保存するのに便利なラッパーライブラリ Default を作ったので紹介します。

github.com

Defaultとは?

Defaultは、Codableに準拠するカスタムオブジェクトを保存するための拡張機能を提供するライブラリです。プロトコルDefaultStorableを介して、UserDefaultsに以下で説明する新しいインタフェースを提供することで、UserDefaultsを拡張します。 Codableサポート拡張機能とDefaultStorableプロトコル拡張機能いずれかを使うこともできますし、両方つかうこともできます。

続きを読む

iOSDC Japan 2017参加レポート

こんにちは。iOSエンジニアの遠藤です。 9/15〜17にかけiOSDC Japan 2017が開催され、VASILYでもiOSチーム全員で参加しました。

また、私はLTとしてShift_JISのURLデコードについて発表させていただきました。 以下、発表資料です。 speakerdeck.com https://twitter.com/re___you

スタッフ、スポンサー、スピーカー、参加者の皆さんお疲れ様でした。 とても楽しかったです!

今年はトラック数も多く、幅広いジャンルの発表がありました。 どの発表も面白く興味深い内容でしたが、今回はVASILYでも実装やプロダクトに組み込んでいきたい内容を含んだ発表についていくつか紹介します。

続きを読む

アニメーションのイージングを自由に作る

f:id:vasilyjp:20180927110322j:plain

iOSエンジニアの庄司です。最近Android開発をはじめて、Android Studioのコード補完力の高さに驚かされています。
iOS11のリリースが間近ですが、今回は最近開発したiOSアプリで実装したアニメーションについてご紹介します。

こんなものを作りました

curving_progress_bar.gif
GitHubにサンプルプロジェクトを上げておきました。 https://github.com/WorldDownTown/CurvingProgressBarSample

ポイント残高や、工程の進捗率を表現したりするのに使えるViewです。 一見すると動きはシンプルなのですが、意外と複雑な実装になっているため説明していきます。

続きを読む

SwiftでLottieを使ってアニメーションを実装する

f:id:vasilyjp:20180927090637j:plain

こんにちはフロントエンジニアの茨木です。一ヶ月ほど前からSwiftでiOSアプリ開発をやっています。iOS開発経験は浅いですが、Lottieというライブラリを使用し、いきなりアニメーションごりごりの画面を担当してみました。 LottieはAirbnb社が開発したライブラリで、僅かなコードでアニメーションを実装できるスグレモノです。 本記事では、SwiftにおけるLottieの使い方を説明します。

続きを読む

モダンなSwiftのExtensionについて - Targeted Extensions

f:id:vasilyjp:20180927130203p:plain

VASILYのiOSエンジニアにこらすです。最近、Swift Evolutionに私の2つ目の提案がマージされました。

今回は、Swiftで型にExtensionを作る特殊な方法について説明します。 今回紹介する方法を使ってExtensionを作ると、名前空間が切り分けられ、コードの読み書きがしやすくなります。

ブログを書くに当たって、この Extension 実装方法を研究しましたが、この手法の正確な名前がわからなかったため、この記事では「Targeted Extensions」と呼ぶことにします。

続きを読む

UIFeedbackGeneratorの使い方と便利に使えるライブラリ

f:id:vasilyjp:20180927112657j:plain

iOSエンジニアの庄司です。

今回は開発中のアプリで使った UIFeedbackGenerator についてご紹介します。

UIFeedbackGeneratorとは、iOS 10以降で利用できるHaptic Feedback (触覚フィードバック) のAPIです。


この記事の要約

  • 一般的なUIFeedbackGeneratorの使い方を紹介。
  • iOS Human Interface Guideline でどのように推奨されているか解説。
  • 自分はこんな場面で導入してみました。
  • UIFeedbackGeneratorによるフィードバックを簡単に実装できるライブラリを公開しました。
続きを読む

新しいアプリを作るときによく使うSwift Extension集

f:id:vasilyjp:20180927112657j:plain

iOSエンジニアの庄司 (@WorldDownTown) です。

最近、業務で新しいiOSアプリを立て続けにいくつか開発する機会に恵まれました。 そんな中、いくつもアプリを使っていると、どのアプリでもよく使う処理があぶり出されてきます。 そういう処理はSwiftのExtensionとして別ファイルに書き出し、他のアプリへも切り出しやすいように個別のFrameworkにして管理しています。 Frameworkの管理については過去のこちらの記事を参考にしてみてください。

今記事では、最近の開発でよく使ったExtension集をご紹介します。

続きを読む

脱・文字列ハードコーディング

f:id:vasilyjp:20180927090637j:plain

こんにちは、iOSエンジニアのにこらすです。

SwiftがiOSの主な開発言語になってから、多くの良いプログラミング習慣が標準になっています。 型安全な設計やコンパイル時のエラー検出が当たり前になりましたが、まだSwiftの型システムを活用せずに、Objective-C時代から残る慣習でランタイムエラーになりやすいところがあります。

今回の記事は、古くてインタフェースが良くないAPIをいかに現代のSwiftプロジェクトに取り入れるかという話です。 古いAPIを使う前に、拡張するかラッパークラスを作ることが必要になるかもしれません。 特にUIFontNSAttributedStringが良くないと思うので二つのライブラリを作りました。 この記事を読みながら付随するUIFontライブラリとNSAttributedStringのライブラリを参考してください。

ここに付随するライブラリがあります:

もし気になったらスターをつけると嬉しいです!

github.com github.com

続きを読む

iQONをSwift 3.0.1にアップデートしたときに対応したポイント

f:id:vasilyjp:20180927104633j:plain

iOSエンジニアの庄司 (@WorldDownTown) です。 iOS 10.1 のリリースから遅れること3日、Xcode 8.1 がリリースされました。この Xcode 8.1 では Swift のバージョンが 3.0.1 にアップデートされています。 iQON の iOS アプリでは、Xcode 8 リリース後すぐに Swift 2.3 へのアップデートは済ませたのですが、最近 Swift のバージョンを 2.3 → 3.0.1 にアップデートしました。

本記事は、作業中に対応したエラー修正の記録のようなものです。とても長くなっていますが、Swift 2系 → 3系にアップデートするときの手助けになればと思います。

続きを読む

Swift 3の変更点の裏側 (アクセス制御 / @escaping)

f:id:vasilyjp:20180927090637j:plain

こんにちは。VASILYのiOSエンジニアのにこらすです。

2015年の12月からSwiftがオープンソースになり、 Swift Evolution(Swift言語の新しい仕様について提案する場所)で多くの開発者の提案が採用されました。 今回はSwift 3の アクセス制御 と @escaping についての変更点と、その背景について紹介します。

Swift 言語の変更点はすべて、Swift Evolution で確認することができます。 さらに変更点だけでなく、決定に至る議論の内容はSwift Evolution Mailing List のメーリングリストで追うことができます。さらにここで アーカイブ も読めます。

続きを読む
カテゴリー