Swift のイニシャライザーの基礎的なところについて 30 分くらいで復習するのに使った資料です。2017/03/06 の『AKIBA.swift × Swift愛好会 vol2』で発表しました。Read less
![Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe](https://cdn-ak-scissors.b.st-hatena.com/image/square/7d5cbe9e0b852107d7f69b93252e32892d1fda8b/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Floveswift-170306130917-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
Pattern Matching, Part 1: switch, enums & where clauses Mar 27, 2016 Updated: Oct 17, 2016 7 minute read — Also available in: 🇨🇳 Chinese From a simple switch to complex expressions, pattern matching in Swift can be quite powerful. Today we’re going to start exploring it by seeing some cool usages of switch, before going further in later articles with even more advanced pattern matching technique
Swift3 から Data 構造体が追加され Objective-C 時代の NSData クラスはお役御免になりました。この Data 構造体は NSData の置き換えなので、できることに違いはほとんどありません。ただしメソッドに互換性がないため NSData を使ったコードを Data に置き換えるのが大変です。というわけで Data 構造体の使い方をまとめてみました。 文字列を Data オブジェクトに変換する 文字列を Data オブジェクトに変換するには以下のように String 構造体の data メソッドを使います。 let str = "abcdefghijk" let data = str.data(using: .utf8)! Data型のオブジェクトを文字列に変換する 反対に Data オブジェクトを文字列に変換するには String 構造体のイニシャライザを使っ
length プロパティが無い!? たいていのプログラミング言語の文字列には length というプロパティやメンバ関数があって文字列の長さを取得できます。ところが驚くことに Swift の文字列には length プロパティがありません。Objective-C 由来の NSString にだってあるのにこれはどういうことでしょう? これは真面目に向き合うと、とても複雑な Unicode に Swift が真面目に向き合っていることに起因します。 Unicode 昔々、コンピュータは地域ごとに、酷いとメーカーごとに異なる文字コードを使っていました。これでは地域やメーカーを超えた文章ファイルのやりとりは色々と面倒なことになります。また、欧米の文字は 1 文字 1 バイトなのに対し日本をはじめとした東アジアの文字は 1 文字 2 バイトで表すことが多く文字列処理が煩雑という問題もありました。こ
おばんです、実家から送られてくる食材や食べ物、また友達からおすそ分けしてもらう実家から送られた野菜などにとても生かされています田中です。 食材本当にありがたい。 はじめに この記事は先日登壇させていただいたiOSオールスターズ2の発表内容と関連した内容となっています。 合わせてお読みいただけると幸いです。 イベントに関してはこちらになります。 [イベントレポート] iOSオールスターズ2最速レポート! #eventdots | Developers.IO [登壇レポート] iOSオールスターズ2に登壇させていただきました! #eventdots | Developers.IO ソースコードはこちらになります。 ktanaka117/MVPTwitterSample 今記事の目標 今回の記事はクリーンアーキテクチャになじみのないiOSエンジニアの方を対象に、iOSアプリをクリーンアーキテクチ
あまり知られてませんが、エラー処理について、Swift 2.0設計時にCore Teamがまとめた"Error Handling Rationale and Proposal"というドキュメントがあります。 https://github.com/apple/swift/blob/master/docs/ErrorHandlingRationale.rst このドキュメントは、僕が去年try! Swiftで発表した際にも参考文献にしました。 https://github.com/koher/try-swift-2016/blob/master/slides.md 長いし(僕にとっては)英語が難しいし、具体例も少ないしで読むのがとても大変でした。 その中でエラーの分類について記述があるんですが、当時ピンと来なかったのが1年かけて逆に素晴らしいと思えてきたので、今日はそれについて発表します。本質
注意書き ※この記事はSwift4.1までのものです。 Swift4.2からは CaseIterable が搭載されたのでそちらをお使いください enum SomeType:String, CaseIterable { case A, B, C, D } print(SomeType.allCases) 概要 以前に、 enumの列挙子を配列で取得するのをprotocolでという記事で、Enumで宣言したcaseを配列で返すprotocolを紹介したのですが、 Xcode 8 betaとSwift3.0 preview-1が出たということで、swift3.0に対応するように書き換えてみました。 なぜ作ったか enum に宣言した全てのcaseが配列でほしい時に、
iOS 8・Xcode 6から、Embedded Frameworkが使えるようになりました。 その導入法について書かれた記事などはよく見かけます("ios embedded framework" でググってください)が、実践的な説明・ノウハウ系はあまり見たことが無かったので、ご紹介します。 以下の2本+ステルス開発中の1本で1年程度の利用経験があります。 JOIN US - 今日飲み会がしたい!今夜飲める人だけのコミュニティ Player! - 熱狂型スポーツアプリ、スコア・試合経過をライブ中継!ニュースも配信中!(プレイヤー) というわけで以下、Embedded Frameworkについて語っていきます。 利点 Staticライブラリというけっこう前からある別の仕組みもありますが、以下の利点全てを享受出来るのはEmbedded Frameworkです。 コード共有 最近、iOS本体アプ
The Swift Server work group is a steering team that promotes the use of Swift for developing and deploying server applications. The Swift Server work group will: Define and prioritize efforts that address the needs of the Swift server community Define and run an incubation process for these efforts to reduce duplication of effort, increase compatibility and promote best practices Channel feedback
About the content This talk was delivered live in March 2017 at try! Swift Tokyo. The video was recorded, produced, and transcribed by Realm, and is published here with the permission of the conference organizers. In this talk, we’ll look at how we can work with table view controllers in a more Swifty way. We’ll use generics, structs and functions to create a reusable subclass of UITableViewContro
twitter.com ファッションフリマアプリFRILを運営する株式会社Fablicは、この春に新サービス「RIDE」をリリースしました。 RIDEは一部ライブラリを除けばアプリ部分はすべてSwift 2.2で書かれたプロジェクトになっています。またWeb界隈で話題のフレームワークReduxのSwift実装であるReSwiftを用いた新しい設計を採り入れています。 このRIDEを実例として、本トークではSwift時代における開発手法についてお話します。 プロジェクトの構成やアプリの設計思想といったコードの話題はもちろん、CIやテストの進め方などチームで効率的に開発を進めるための工夫についてもお話する予定です。 iosdc.jp speakerdeck.com フルSwiftでバイクフリマアプリRIDEを作って得た学び 僕は緊張でビール我慢しているんですが会場からプシュっていう音が聞こえて
App Market Data Made Easy The most comprehensive API for global app store data. Access app data for all Google Play and iOS App Store apps in 155 countries including 2 years of historical data. Build services on top of the app store Daily fresh high-quality app data Simple API integration Unlimited access - no per-seat pricing, no monthly quotas
This blog post introduces Swinject, a dependency injection framework for Swift. Swift 2 will come with protocol extension and encourage protocol oriented programming. In addition, Xcode 7 will introduce UI testing. In this context, it is getting more important to decouple components of an app by protocols. The typical pattern of the decoupling is called dependency injection. Dependency Injection L
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 _?:
Memory management scares most developers when it doesn’t work as expected. Apple’s Automatic Reference Counting (ARC) magically handles most memory management we used to do manually, but still often needs guidance to work well. Swift provides us with cool tools like capture lists, unowned, and weak references to do so. In this talk, Hector Matos discusses memory leaks and retain cycles — how these
メルカリのグループ会社である、ソウゾウからリリースされた地域コミュニティアプリ「メルカリ アッテ」のリリースまでの裏側を語る「atte FeS」のGo・Swift開発編に参加してきたので、そのまとめ。 atte開発の技術 Golang と Google Cloud Platform 鶴岡 達也様 GoとGAEは非常に有力なWebアプリ開発手段 PaaSの時代が本格的に始まってきた herokuなどあったが、GAEは突き抜けて優秀なのではないか アプリケーションの要件 機能的な側面 作ろうとしているアプリを洗い出した JSON API、静的コンテンツ配信, 動的コンテンツ生成、DB、キュー処理 キーだけの検索ではなく、全文検索、位置情報、予測変換などの検索 画像をアップロードして配信、メール配信、Push通知、データ分析 非機能的な側面 グローバル:複数リージョンでDBはグローバルに一つだけ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く