#yidev 横浜 iPhone 開発者勉強会の第18回で話す予定だったスライドをアップしました。構造体に主眼をおいてみてみよう、そんなお話です。 内容的には、以前の第60回 Cocoa 勉強会関西で話したスライドを端的にまとめたスライドです。少し前のスライドになりますけど、ざっと見た感じ、今の Swift 2 でも参考できそうな様子でした。Read less
これはstruct(構造体)かclass(クラス)どちらで宣言すべきか。慣れないうちは悩むことがあると思います。どちらにするのが良いかを考える基準について説明したいと思います。 参考: The Swift Programming Language: Classes and Structures structとclassの違い まずはstructとclassの違いを理解しておきましょう。 structは値渡し、classは参照渡し structは継承できない、classは継承できる ただしstructもextensionでメソッド追加はできる structはselfのプロパティを変更するメソッドはmutatingキーワードが必要になる structの方が望ましいもの シンプルなデータ構造である プロパティも値渡しの型である、つまりstructである Int、Double、String、Dic
May 7, 2015 Swiftに慣れてくると!を避けたくなりますが、!を書きたくなるようなケースもあります。 func loadSignInViewController() -> SignInViewController { let storyboard = UIStoryboard(name: "SignIn", bundle: nil) let viewController = storyboard.instantiateInitialViewController() as! SignInViewController return viewController } func loadSignInViewController() -> SignInViewController { let storyboard = UIStoryboard(name: "SignIn", bundle
Aug 31, 2015 The Swift Programming Language: Patterns Swiftのパターンは値の性質を表してマッチングを行うもので、switch文などに使われているものです。これまでは、switch文の柔軟さを知っていても背景にあるパターンという存在を知らなかったため、強力だけど気味が悪いなあと思っていました。パターンの文法がわかると気味の悪さがいくらか解消されて、気持よくパターンマッチングができるようになると思います。あとでハッシュタグを振り返ってみると同様に思っていた人が数人いたようで、発表して良かったなあと思いました。 スライドの最後の方に紹介されているUITableViewControllerの実例のような、実際にアプリ開発で使えるテクニックをもっと見つけていきたい。
Match Me if you can: Swift Pattern Matching in Detail.が良記事で、ちょうど僕もSwift2のキャッチアップ中だったので、写経しながら翻訳ぽい記事を書きました。(翻訳許可もいただいています) 冒頭のイントロ的部分は飛ばして、Advanced Pattern Matchingから書きます。 様々なパターンマッチング 7つのパターンを紹介します。 switchだけではなくif・guard・forを組み合わせて表現します。 1. ワイルドカードパターン ワイルドカードパターンは、マッチした値を無視します。 let _ = fn()の_と同様です。 単に_で受けるとnilを含む全ての値にマッチしてしまうので、オプショナルの値をマッチするには、_?として区別します。 let p: String? = nil switch p { case _?:
Nov 5, 2015 GitHubのEvents APIでは、イベントの種類に応じて一部のJSONの構造が変わります。構造が可変となっているのはpayloadと呼ばれる箇所で、種類に固有の情報はpayload以下に格納されます。例えば、CommitCommentEventのpayloadはcomment, senderといった情報を持ち、CreateEventやDeleteEventはref, ref_typeといった情報を持ちます。 https://developer.github.com/v3/activity/events/types/ SwiftでEvents APIのレスポンスを表そうと考えた場合、以下の2つが思い浮びました。 Eventという1つの型を定義してpayloadは[String: AnyObject]にする。 EventTypeというプロトコルを定義して種類ごとに
会員事業部の三木(@giginet)です。 この記事では、業務改善のために開発者向けのツールをSwiftで開発してみたため、その知見についてお伝えしたいと思います。 なお、この記事はXcode7.1上でSwift2.1を使った開発を前提としています。 作ったもの クックパッドiOSアプリでは開発の際に、新しい機能を実装したり、インターフェイスを改善したあとにiOSシミュレーターの動画を撮影しPull Requestに貼り付けています。 動画を撮影する際には、汎用的にスクリーンキャストを撮影する社内ツールを使っていたのですが、使いづらい面も多かったため、 簡単にiOSシミュレーターの操作をアニメーションgifとして記録したいという需要がありました。 そのため、空き時間を使って、簡単なユーティリティを実装しました。 なぜSwiftで作るのか 今回は、OS Xの開発用SDKであるCocoaを使い
I am trying to register my application for local notifications this way: UIApplication.sharedApplication().registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Alert | UIUserNotificationType.Badge, categories: nil)) In Xcode 7 and Swift 2.0 - I get error Binary Operator "|" cannot be applied to two UIUserNotificationType operands. Please help me.
Swift has access to all of the Objective-C APIs, which means that anything you could do with Objective-C you can now do with Swift. However, there are times when it is worth exploring a better, pure-Swift, alternative. This post explores the pros and cons of KVO versus a couple of Swift alternatives. A recent blog post by Ash Furrow made a really interesting point: Pay attention to the friction yo
概要 きっかけとしては swiftがっつり書いてみたい QiitaをiPhoneで閲覧したい 社内でiOSのライブラリ開発してるが、「お前実際のアプリ知らないだろ」って舐められてる感があるから「いやー、少しは知ってるお。(・ω・)」ってとこを見せるため という感じです。 アプリのことと、1.5ヶ月ぐらい開発してて思ったことをツラツラ書いていきたいと思います。 作ったアプリ「Miita」 Qiita APIを使って「Miita」というQiitaのクライアントアプリ開発しました。 https://itunes.apple.com/jp/app/miita-browsing-article-for/id1030691396 アプリ名の由来 モバイルのm iPhoneでQiita(iita)を見(m)るのm 山口のm などなど、ゴロがいいので当てて見ましたよ 機能 すべての記事、ストックした記事、
Swiftの言語仕様が新しくなってたのはSwift 1.2というやつだったらしい そうだとは知らずにまた開発者に告知もなく言語仕様を変えやがったのかと思っていました。アップグレードならまあ、仕方ない。 blog.euphonictech.com で、私が一番期待しているのは言語仕様ではありません。これ以上開発者を混乱させる一貫性のないシンタックスシュガーはいりません。僕の考えた最強のプログラミング言語は好きなんですが、選択肢が他にあっての話だから。毎日チーズ入りハンバーグとかうまいけど死ぬぞ。アンダース・ヘルスバーグ氏を招いたほうがいいのではないか。 参考資料 一番わかり易い公式ブログです。2画面ぐらいにまとめてあって字も大きくてわかりやすいです。 developer.apple.com リリースノート。開発者の人しかアクセス出来ないみたいです。 developer.apple.com ち
[iOS 8] WKWebView で Web ページのロード中にプログレスを表示してみる 〜 Objective-C 編 前回 前回の記事 では、WKWebView で Web ページのロード中にステータスバーにインジケーターを表示する部分を解説しました。今回はロード中のプログレス(進捗状況)を表示する方法について解説します。 サンプルプロジェクトを起動してみる hirai-yuki/WebBrowserSample からサンプルプロジェクトをダウンロードして、Xcode 6 で開き、実行してみましょう(pod installを忘れずに!)。 すると、以下のように Web ページの読み込み中に、ナビゲーションバー下部にプログレスバーが表示されていますね。 SGNavigationProgress サンプルプロジェクトでは、ナビゲーションバー下部にプログレスバー表示に SGNavigati
Jun 30, 2015 議論したかったこと 中でも発表中に言った「Rubyで実行できるCのソースコード」を書かないようにしたいというところが一番訴えたかったところです. 結局,何も考えずにSwiftでiOS/Macのコードを書くと,「Swiftで実行できるObjective-Cのソースコード」になってしまいます. 多分にif let hoge = hoge() {}が,そこらじゅうに散らばると思いますが,結局,「Swiftっぽく」を考えないなら,Swiftで書く意味はあまりないと考えます. この考え方が間違っていないとすると,次に考えるべきは「Swiftっぽい」であり,コードを書くときにどんな風に書けばいいのかという点になると思います. Swiftっぽく書くということ 私は,reddiftという,reddit.comのAPIラッパーをちょこちょこ勉強がてら作っています. このソースコード
iOSのTwitterのアプリのNavigationBarにUIPageControlが入っていて素敵だなと思ってまねてみました。 完成した画面はこんな感じになります。 UIPageViewControllerを使って実装してみました。 簡単に実装方法を紹介します。 StoryBoard こんな感じで実装してみました。 NavigationItemの上に一度UIViewをのせて、さらにその上にUILabelとUIPageControlをのせています。 あとは@IBOutletでViewController.swiftと接続してます。 ソースコード わかりやすく一つのViewController.swiftにまとめてみました。 ViewController.swift123456789101112131415161718192021222324252627282930313233343536
iPhone6 と iPhone6 Plus が発売になり、本格的に iOS でも Android のように複数解像度に対応したやり方をしないといけなくなってきました。 iPhone5S までは、縦幅が伸びただけだったので、なんとなく Auto Layout を使っていても問題は表面化しづらかったのですが、 iPhone6 で横幅が伸びてしまったことで、適当に Auto Layout を使ってコーディングしていると残念なことになっているアプリが結構あります。 僕も iPhone アプリを開発しているのでこのあたりは結構気を使ってはいるんですが、いかんせん自分のやり方がほんとに正しいのか、やや疑問なところもあります。 そこで、今の自分のやり方を晒して、世の iPhone アプリ開発者の人に突っ込んでもらえればと思い記事を書くことにしました。 間違っている箇所もあると思いますので、ドンドンツッ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く