2016-01-01から1年間の記事一覧

Bitriseをオープンソースプロジェクトで利用したい!

最近Travisのワーカーが一部で不足しており、Xcode8.1をターゲットにすると、ビルドが始まるまで1時間待たされるなんてことがありました。 これではちょっと回らないと思ったので、お試しでBitriseに乗り換えてみました。普段仕事では有料契約をして使ってい…

Apple Pay ? In-App Purchase ?

Apple Payが話題になっており、メルカリさんでは既に導入されたとのこと。 あれ、そういえばアプリ外で課金させちゃダメなんじゃなかったっけ。。この辺りのルールがよくわからん!となったので、調べてみました。 結論から言うと、 アプリ内で消費するコン…

LGTM iOS版をリリースしました

どうも @toshi0383 です。この度めでたくLGTM のiOS版をリリースしましたのでお知らせ致します。 https://itunes.apple.com/jp/app/lgtm-super-quick-lgtm-image/id1161220259?ls=1&mt=8&at=10l8JW&ct=hatenablog 早いもので、mac版をリリースしてからもう1…

クロージャでプロパティを初期化する

Caution! この記事はまだSwift2.2です! 普段何気なく使っているのですが、たぶん初めて見た人は混乱するだろうなと思ったので。 extension UIImage { private static var contentPlaceholder: UIImage = { return UIImage(named: "placeholder_b.png")! }()…

tvOS-10-Sampler

Hey guys I just created a tiny sample app demonstrating tvOS 10 new APIs. github.com I open-sourced it because the AVContentProposal API is still buggy and I wanted feedbacks from other developers from the world. So this is the crash you c…

ぼくのSierraアップデート記

諸事情でSierra & Xcode8に開発環境をアップグレードしたので人柱記録です。 と言っても大した問題はなく、普段使っているツールは大体対応してくれていました。 gitup も問題なしでした。 SwiftLintなど開発用のコマンドラインツール群も問題なし。 Siriを…

RxSwiftのbindToについて

RxSwiftにはbindToが大きく分けて2種類あります。 引数にobserverを取るものと、binderを取るものです。 引数にvariableを取るものは基本observableを取るものと動きが同じです。 以下のような特徴があります。 引数にobserver/variableを取るもの 内部的に…

同じワークスペース内で作ったSwiftモジュールを使う

こういう感じの構成で、libの中をPokemonKitとしてモジュールにして、sourcesをアプリにしたいと思った。 app $ tree . ├── Makefile ├── README.md ├── build.ninja ├── lib │ └── pokemon.swift └── sources └── main.swift モジュールにしなければ、swift…

AppleTVの時刻ズレ問題

Forumに投稿しました。 https://forums.developer.apple.com/message/139631 AppleTVは、当然ですが内部に時計を持っています。Siriに「今何時?」と尋ねると、ちゃんと答えてくれます。しかし、答えてくれる時間がおかしいことが、たまにあります。 状況を…

コードを綺麗にする誘惑に君は耐えられるか

try! Swiftのセッションの翻訳を読んで、ちょうど今考えていたことと関連したので、記事にしようと思いました。 https://realm.io/jp/news/tryswift-daniel-steinberg-blending-cultures/realm.io まだObjective-Cでメンテナンスが続いているアプリもたくさ…

Tokyo iOS Meetup で発表してきました

Tokyo iOS Meetupというイベントの主催者に声をかけられて、tvOSアプリの開発について発表してきました。 www.meetup.com 内容は、先日のyidevで発表した内容を最新の情報で更新して、新たに得たtipsを追加したものになります。 なおtvOSのUIKitとAVKitにつ…

enumの値チェック

enumをrawValueから生成するときに、値を制限したいことはよくあると思います。 Himotokiと組み合わせることを前提に、rawValueが不正だった場合に詳細なエラーメッセージを含むDecodeError.TypeMismatch をthrowするinitializerを作ったので共有します。 な…

MacのFinderのTags

仕事のプロジェクトでFinderを使いこなしている人がいたので、仕組みについてちょっと調べてみました。 こういうやつです。 右クリックのメニューからタグを選択できます。 ターミナルで ls すると、@ というStickyBitがついています。 $ ls -l total 40 -rw…

CoreAnimatorを使ってみました

本日から始まったtry! Swiftカンファレンスで@TimOliverAU が紹介していたCoreAnimator。気になったので早速購入して使ってみました。 https://itunes.apple.com/jp/app/core-animator/id934434650?l=en&mt=12&at=10l8JW&ct=hatenablog たっけー。ま、自分で…

TVMLKitchen

こんにちは、皆さんAppleTV楽しく使っていますか?私はなんと毎日使っています。なぜなら案件についているからです! というのは実は(!)冗談で、今このゲームにハマっているからです。 Gameloft Video Game Developer Worldwide Audiのファミリーカーでマル…

テストコードを読んでライブラリの難しいコードを理解する

こんにちは、@toshi0383 です。 この1年間振り返ると様々なライブラリにお世話になってきました。ライブラリは中身の実装は知らなくても使えるよう、「まアいつものアレでしょ」という処理が抽象化されているというのが便利な点なわけですが、ソースコードを…

Swift Package Manager のPackageがlinkerエラーでビルド失敗する

久しぶりにSwift Package Managerを触ったら、 この構成で、 $ ls Package.swift main.swift $ cat main.swift print("hello") $ cat Package.swift import PackageDescription let package = Package( name: "Queue", dependencies: [] ) こんなエラーが出…