Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
以前、 Objective-C と OCMock についての記事を書きましたが、今回は Swift について書いていきます。 準備 Xcode の使い方やプロジェクトの設定は Objective-C と基本的に同じなのでそちらを参照してください。 このように Project > Build Settings > Defines Module を YES に設定します。 テストコード 標準の XCTest Framework を使う場合は書き方が Swift になるだけで、Objective-C とほとんど同じです。 違うところは、Objective-C の場合はテストに関連するクラスを個別に import しなければならなかったのが、@testable import sample のようにテスト対象のターケッドを指定するだけでよくなります。 import XCTest @testable
precedencegroup PipePrecedence { associativity: left higherThan: AssignmentPrecedence lowerThan: TernaryPrecedence } infix operator |>: PipePrecedence func |> <Input, Output> (lhs: Input, rhs: (Input) -> Output) -> Output { return rhs(lhs) } // 普通ver let storyboardName = storyboardName() let storyboard = UIStoryboard(name: storyboardName, bundle: nil) let viewController = storyboard.instantiateVie
これは Swift Tweets の発表をまとめたものです(次回開催はこちら)。イベントのスポンサーとして Qiita に許可をいただいた上で投稿しています。 ありがとうございました!Q&Aは他の人の発表中でも構わないのでリプを飛ばして下さい。 続いては僕 @koher の発表で、タイトルは "Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい" です。 #swtws — koher (@koher) 2017年1月14日 第 1 部: Swift の 4 種類のエラーについて あまり知られてませんが、エラー処理について、 Swift 2.0 設計時に Core Team がまとめた "Error Handling Rationale and Proposal" というドキュメントがあります。このドキュメントは、僕が去年 try! Swift で発表した際にも参考文献にしまし
Swift Advent Calendar その2の23日目の記事です。 Swiftはマルチパラダイム 私がiOS開発に手を出し始めたのはおよそ4,5年ほど前、当時はまだSwiftは存在せず Objective-Cによる開発で、ちょうどMRCからARCに切り替わる手前ぐらいに初めて出会いました。 当時は元々アプリエンジニアがほとんど社内にいない中、Android開発をもくもくと開発しており オブジェクト指向はなんぞや?という所からJava先生にいろいろ教えて貰っていた所だったので、 その名の通りオブジェクト指向ベースであるObjective-Cにはretainカウントに発狂する以外はある程度キャッチアップできていました。 Swiftはマルチパラダイム言語と呼ばれています。 Objective-Cゆずりのオブジェクト指向、そして関数型を取り入れ、 また各言語に散らばっていた素晴らしい機能(N
以前こちらの記事で、Alamofireを読んでいて気づいたSwiftの便利な書き方についてご紹介しました。 Alamofireから学ぶSwift実践テクニック 今回は他のライブラリから、気になった書き方をご紹介したいと思います。 追加可能なenumのように使えるstaticプロパティ ライブラリ名 SwiftyUserDefaults 内容 SwiftyUserDefaultsはUserDefaultsを便利に使うためのライブラリです。 キーの定義とsubscript引数の入れ方に特徴があります。 extension DefaultsKeys { static let username = DefaultsKey<String?>("username") static let launchCount = DefaultsKey<Int>("launchCount") } let usern
2016年ももうすぐ終わり。 なので今年いいなと思ったマイナーっぽいライブラリを紹介していきます。 地味に便利系が多いかも。 RxSwift RxとはReactiveX(Reactive Extensions)のSwift実装です。他にもRxJavaやRxJSなど各言語や各プラットフォーム用のRxがあります。 observableなどの考え方が面白いなと思い今コレを使って何か作ろうかと思ってます。 最近注目されてるであろうライブラリです。 Qiitaでもたくさん記事があります。 他にもRxSwiftと一緒に使うことができるライブラリなどもあります。 RxRealmなどの有名ライブラリなどが対応しています。 RxSwift Community PermissionScope 画像のように簡単に通知や位置情報の使用の許可などを取ることができます。 AsyncKit 有名かもしれない。 これは複
プロローグ 大学入学祝いのパソコンは12-inchのMacBookを選んだ。 USB Type-Cのこととかスペックが低いこととか気になったけど、もう見た目がかっこいいからこれに決めた!ってなった。振り返ってみれば、この時に自分が好きでいられるパソコンを買ったことはとてもいい選択だったように思う。 パソコンを買ったら、もう可愛い可愛いMacBookが使いたくて自然にプログラミングを始めようと思い立った。よし、Pythonやろう。そう思っていた。 Pythonの本を買って進めていたのだけど、古い本を買ってしまったので設定などが本通りにうまくいかず、結局やめてしまった。それでも心の何処かにプログラミングしたいなという思いがあり、数ヶ月後にとうとうSwiftの勉強を始めたのだった。 なぜSwift? 僕がSwiftを触り始めた理由は「自分のiPhoneで動くアプリが作りたかったから」である。 i
iOSアプリ開発わけがわからない 僕は、以前までサーバーサイドのエンジニアをやっていたのですが、今年の6月から突然、SwiftでiOSのアプリ開発をすることになりました。そのときに、最初に思ったのがこの感想です。 iOSアプリ開発わけがわからない。 巷では、「簡単に作れるiOSアプリ!」、「10分でアプリを作ろう!」などの記事で溢れていますが、敷居が低く見せつつも、実はハマリポイントが多いです。 今、振り返って、過去の苦しんでいる自分に言ってあげたいことを今回まとめました。 1. 何かがおかしい。うまく動かない。 デバッグ方法を知ろう ブレークポイント ブレークポイントを貼ることによって、処理を途中で止めることが出来ます。 そして、その際に変数に入る値を確認することがあります。 ここまでは、他のIDEと同じだと思うのですが、値を見るのに工夫が必要です。 コンソール上で、po オブジェクト名
Swiftのmap, filter, reduce(などなど)はこんな時に使う! Swiftをさわり始めてある程度経つと「Swiftらしく書きたい」という欲望がわいてきます。そしてObjective-Cでは触れたことのない、map, filter, reduceというのものを目にすることになると思います。 これらの関数を見たときの最初の印象は「うわ、何これ」といったもので、見慣れない構文に戸惑いました。同じように戸惑いを感じた方もいるのではないでしょうか。 特にどんなシチュエーションで、何を使えばよいのかといった部分があまりピンと来ず、なかなか使いこなせずにいました。 そのような経験を踏まえ、**こういう時は、これを使う!**と一言で説明することを目指してこの記事を書きました。 はじめに結論から 一言でまとめると、これらの関数を覚えるとめちゃくちゃ便利になります。 この関数はこんな時に使う
iOSのAdventCalendarということで、iOSエンジニアがkotlinを始めてみてとてもよかったので、普及目的でこの記事を書こうと思います。 それぞれは違う思想で作られているので勉強になります。 RxSwift/Realm/MVVM/swift2.3を採用したプロジェクトを一つ担当して、今はkotlinで全く同じアプリを作ってます。 といってもAndroidでkotlin使って書くのは初めてだったので、もっといいやり方などあればご指摘いただけると大変助かります :) kotlinにした理由 一番はNull安全なことです。ええ、安全です。あとは以下の理由です。 var/val でletっぽく書けたりlazyやExtensionでiOSと同じ思想で書ける 導入も簡単 導入事例も増えてきた 構文もシンプル ちょっとずつ構文が違うので、たまに混乱します。 ここがちょっと違うよiOS ->
【追記】 本記事 + α の内容を以下で丁寧にまとめました(一部本記事のみに記載されている内容もありますが)。 Swift 3.1のリリースプロセスおよびそれに含まれる変更内容の紹介(前編) - Build Insider Swift 3.1のリリースプロセスおよびそれに含まれる変更内容の紹介(後編) - Build Insider そろそろ、Swift 3.1 のことも気になってくる頃かなと思って、それについて書いてみます。 Swift 3.1 で予定されている変更点(現時点) 現在実装済みの主な変更点は、Swift 3.1 の CHANGELOG に記載されています。 現時点では、以下の3点が記載されています。 SR-1446: Nested generics SR-1009: Add methods to an Array containing a specific type SE-
まずはこちらをご覧ください。 URLをコピーすると自動でQRコードに自動変換して表示してくれてますね。動作としてはURLと思われるテキストをコピーした後、Cmd + Ctrl + CのショートカットでQRコードを表示するようにしています。つまり Cmd + C → Cmd + Ctrl + C のキーボード操作だけでいけます。便利ですね。 名前は LightningQR⚡️ です。ライトニングさんは関係ありません。 今回はこのMacのステータスバーに常駐するアプリをSwift3で作ったので、簡単に作り方を解説しようと思います。似たようなアプリを作ろうと思っている誰かのお役に立てれば幸いです。 なお実際に使ってみたい人は、下記からダウンロードしてください😀 またソースコードもGitHubで公開しているので見てみてください。Macアプリ初心者が作ったのでハッキリ言って雑コードです。ごめんなさ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Swiftの激しい変更への追従がつらいという意見をちょくちょく目にします。 確かにSwift 1正式リリースから2年経ったSwift 3でかなりの変更が盛り込まれて、その対応が大変というのは分かるものの、それはSwiftを利用する上での必要なコストであると感じつつ付き合っていました。 Swift 3まではこの辛さは妥当、そしてそれ以降はその辛さも激減する、と思っています。 Q&A 以下、何か思うことがあれば随時追記していくかもです。 「Swift 3 対応つらい」 Swift 3で、言語仕様の安定度的にはようやく所謂1.0レベルという印
今、Swift2 で書いている同胞達へ。最低限やっておきたい、Swift2 のままで始める Swift3 対策Objective-CiOSSwift Xcode8.2 を最後に Swift2 のサポートが終わりますね。Swift3 に移行祭りの季節が近づいてまいりました。 実は、Swift2 のコードを Swift3 に書き換え始めて 1 週間。まだお祭りしてます。 Xcode のマイグレーションツールは暴君です。 標準ライブラリだけでなく、自分たちで定義した変数名や列挙子などなど、問答無用で API デザインガイドラインに則った形に変換します。 完全に置き換えしてくれるならまだしも、修正箇所が多いと変換が中途半端になります。 また、当然、RxSwift などのライブラリの変更部分の修正は自分でやらなくてはなりません。 でも、大丈夫です。今から戦う準備をしておけます。 Swift2 のうち
私同様、慣れていない方が何らかの参考にしていただくとか、利用していただければ幸いです。 ちなみにTinyHTTPServer.swiftを見てもらうと分かりますが、HTTPとしてはかなりナメた実装なので、あくまでも参考として下さい(苦笑) 評価方法 動かして戴ける方のために、簡単に動かし方を説明します。まずはgitから落とすかzipを解凍します。 URL https://github.com/gdaigo82/iosSampleServer 次に適当なJPEG画像をsample.jpgとして用意し、それをgdSampleServer/gdSampleServerフォルダに入れます。 その後、xcodeでビルドし、実機もしくはiOSシミュレータで起動してください。例によってですがプロ生ちゃんが出てきます。 #ちなみに実機ですと、本当は3G回線のIPも出ます(つまり2行表示されます)。上の図で
はじめに Objective-C時代から絵文字の判定方法には 絵文字の文字コードを全部メモリーに持っておいて照合する という泥臭い方法を採っていたのですが、iOSのバージョンアップに伴う絵文字の追加に追従するのが面倒くさいので、もう少しスマートに判定できないか考えてみました。 2016/12/16 Xcode8.2 + iOS 10.2 頂いたコメント等を元に再編 考えたもの 仕組みは簡単、CoreTextを使ってAppleColorEmojiフォントに対し、文字コードを渡し、グリフ値(フォントの文字のインデックス値)へ変換できたら絵文字とみなす、というものです。 ただ、AppleColorEmojiフォントは何故か0,1,2,3...と言った文字のグリフも持っているため、その辺りだけ例外的に除外してあげる必要があります。 (スクショはmacのフォントですが) また、String.Char
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く