About the content This talk was delivered live in June 2016 at mDevCamp. The video was transcribed by Realm and is published here with the permission of the conference organizers. MVVM、MVC、VIPERなど多様なアーキテクチャデザインがありますが、どれが一番良いのでしょうか。この講演では良いiOSアプリアーキテクチャを構成するためにどのような要素が必要なのかを見ていきます。 導入(0:00) New York Timesで働いているKrzysztof Zabłockiです。オープンソースまたは私が作ったFoldifyアプリを通じて私の名前を聞いたことがある方がいるかもしれません。もしかしたらObjectiv
This entry is for Japanese speaker. Those who are interested to contribute R.swift, please refer to this doc これはiOS Advent Calendar 2016の12/3の記事です。 Swiftでprintlnを書いてハマるレベルのエンジニアが一週間(実稼働時間 約8時間)でR.swiftにコントリビュートしたお話。(だったけど、メンテナさんが別プロジェクト始めちゃってまだマージされていない。-> この記事の翌日2016/12/04にマージされましたー!) Swift開発している人にとっては常識な話が多数だと思いますが、Android開発やKotlin触っていて、Swiftもやってみたい!とかSwiftのライブラリ開発してみたい!という人向けです。R.swiftのコントリビュート
この記事は Slack Advent Calendar 2016 - Qiita の6日目の記事です。 昨日は S_Shimotori さんの HubotとTypeScriptで翻訳Slack botでした。 Hi, I'm John! 今日はエウレカのiOS開発チームが使っている便利なボットを紹介したいです!Swiftで書かれて、Swiftをビルドするボット、 porygon と呼んでる。 このボットには、Slackでこういうメッセージ(コマンド)を送ると: XcodeのコンパイルからiTunesConnectやCrashlyticsまでデプロイしてくれるボットです!リアルタイムの報告もできる: ビルドはエラーがあった場合、ちゃんとログも送ってくれる: そしてporygonの特徴は、ローカルのMacでも実行できる! porygonみたいなボットが作りたくなってきたかな? Technolo
昨年に続き、3月2〜3日に開催されたtry! Swift Tokyo 2017に行ってきました。 テスト系のセッションが3つあったので、それらについてまとめます。 今年は海外からを含め700人を越える参加者があり、会場になったベルサール新宿セントラルパークの広いホールもこんな感じ(会場の2/3あたり後方から撮影)。 クックパッドアプリのテストを味わう - Tasting tests at Cookpad 初日、クックパッドの松尾さん(@Kazu_cocoa)の講演。全て英語でのプレゼンでした。すごい。 20170302 tryswift tasting_tests from Kazuaki Matsuo www.slideshare.net このセッションでは、UIのテストについて、UIのテストがクックパッドの開発をどうサポートしているかについて語られました。スライドには"Tests"とだ
こんにちは、WantedlyでiOSのエンジニアの杉上です。先日Twitter上で勉強会を行うという斬新な試みにお声がけいただき、Swift Tweets Tweetupに登壇させていただきました。このときに投稿した内容をご紹介します。 リンクSwift Tweets Tweetup#swtwsハッシュタグSwift Tweets 登壇者リストKosuke OgawaさんによるtogetterまとめQiitaのswtwsタグの記事 Tweetupとは 登壇者の皆様メインスピーカー LTスピーカー 登壇内容(登壇順) Swift時代に悩ましいUIViewControllerをどう扱うか susieyySwiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい koherSwiftの型の限界を超える tarunonSwiftのString(文字列) APIとの付き合い方 mono0926
最近 Qoncept では TensorFlow を使った案件が続いており、その中で TensorFlow を iOS 上で使いたいことがありました。 ぱっと浮かんだ選択肢は次の二つでした。 TensorFlow を iOS 用にビルドして C++ の API を Swift から叩く 学習は TensorFlow / Python で行って、テンソルの計算だけを iOS / Swift でシミュレーションする しかし、前者ついては、まだ TensorFlow を iOS 用にビルドできなさそうでしたしできるようになりました(コメント参照)、たとえできたとしても C++ の API を Swift から叩くのは辛そうです。 TensorFlow がありがたいのは学習時の自動微分等の機能であって、学習済みのモデルを利用するときはただテンソルの計算をしてるだけです。別に学習を iOS 上でやり
Swiftにはポインタを表すための型として UnsafePointer とその仲間達があります。CoreFoundationなどC言語のライブラリを使う時などに利用することになります。これらのポインタ型のAPIはとてもよく考えられた素晴… UnsafePointer<T> などについて詳細に説明されています。普通にアプリ書いているとなかなか触れる機会が無いですがいざ使わなきゃいけなくなったときにこういう記事あると良いですね。同じくメモリ周りの濃いめの記事として、Swiftのメモリレイアウトを調べる ・ Swiftのenumのメモリレイアウトの最適化が凄いも書かれていました👀 Swift EvolutionSwift 4メインの開発体制に移行これまでSwift 3.1の開発は master ブランチ上でなされていましたが、1月17日を区切りに swift-3.1-branch ブランチ上で
これは Swift Tweets の発表をまとめたものです。イベントのスポンサーとして Qiita に許可をいただいた上で、このような形(ツイートの引用)で投稿しています。 Twitterのハッシュタグはこちら Swift Tweetsオーディエンスの皆様こんばんは!Tweetupという新しい試みに参加させていただきとてもワクワクしています。本日は「Swift時代に悩ましいUIViewControllerをどう扱うか」についてご紹介させていただきます。よろしくお願いします。 #swtws pic.twitter.com/JWfOjH0E1W — susieyy (@susieyy) 2017年1月14日 まずは自己紹介から。杉上洋平と申します。iOSの開発は日本でiPhoneが販売されたときに、嫁が早速手に入れてアプリがないので作ってほしいと言われたのをきっかけに、2008年からアプリを作
To facilitate use as a quick reference, the details of many guidelines can be expanded individually. Details are never hidden when this page is printed. Table of Contents Introduction Fundamentals Naming Promote Clear Usage Strive for Fluent Usage Use Terminology Well Conventions General Conventions Parameters Argument Labels Special Instructions Introduction Delivering a clear, consistent develop
スマホデバイスのスペックも向上し、Swiftのコンパイラのパフォーマンスも上がり続けていますが、ちょっとしたパフォーマンスが気になることはよくあります。 スマホアプリではパフォーマンス次第では使い勝手が極端に悪くなります。 finalやprivateを駆使したパフォーマンス改善はJava等の多言語でもおなじみで応用が効くものです。無闇にfinalやpriavteをつけている場合も多いでしょうが、パフォーマンス改善の理屈が分かると上手に使用できるようになると思います。 全モジュール最適化(Whole Module Optimization)は開発時は不要ですが、リリース時には必ず実行しておきたいですね。 This blog post showcases three ways to improve performance by eliminating such dynamism: final,
iOS関係の勉強会に参加するとほぼ間違いなく、設計に関する発表があるように思います。 「RxSwiftを使ってMVVM...」「Clean Architectureを導入...」, etc... 色々話を聞く中で、自分は以下のような課題があるなぁと感じています。 いろいろな設計方法があるけれど、結局何を使うべきなのかわからない 名前は聞いたことがあるけれど、それぞれがどのような設計で、何がメリットなのかわからない 勉強した時は分かったような気がしたけれど、もう忘れた この記事はこれらの解決の一助になればと思って書いたものになります。(設計へのモチベーションを上げたい) サンプルコードを交えながら、5つの設計について考察してみます。 ※ RxSwiftの名前を出しましたが、ライブラリに関してはこの記事では言及しません。 そもそも、なぜ設計に拘る必要があるのか iOSアプリ開発において、このよ
iOS Clean Architecture の説明と、実際にMoneyForwardでiOS Clean Architectureを導入してみた話をします。 Sample code: https://github.com/koutalou/ios-cleanarchitecture
iPhone6 と iPhone6 Plus が発売になり、本格的に iOS でも Android のように複数解像度に対応したやり方をしないといけなくなってきました。 iPhone5S までは、縦幅が伸びただけだったので、なんとなく Auto Layout を使っていても問題は表面化しづらかったのですが、 iPhone6 で横幅が伸びてしまったことで、適当に Auto Layout を使ってコーディングしていると残念なことになっているアプリが結構あります。 僕も iPhone アプリを開発しているのでこのあたりは結構気を使ってはいるんですが、いかんせん自分のやり方がほんとに正しいのか、やや疑問なところもあります。 そこで、今の自分のやり方を晒して、世の iPhone アプリ開発者の人に突っ込んでもらえればと思い記事を書くことにしました。 間違っている箇所もあると思いますので、ドンドンツッ
はじめに ①ViewControllerから処理の一部を切り出したい → ViewControllerの肥大化 ②ViewControllerで状態(フラグ)を意識したくない → フラグ管理がカオス ③ユニットテストしやすくしたい → テスト容易性 上記の課題を解消する一つの方法をご紹介します。 その答えは、「条件分岐を減らす」です。 環境 XCode : 8.0 Swift : 3.0 今回ご説明する例 今回は、下記のようなシンプルな例で説明します。 ①ログオフ状態の場合、ログインボタンを表示する(フォントカラーは青色) ②ログイン状態の場合、ログアウトボタンを表示する(フォントカラーは赤色) 1. Badケース まず最初にBadケースをご紹介します。 ViewController内でログイン状態を意識し、 ログインとログオフで処理や表示に違いがある度に、 条件分岐が増えてしまいます。
いつもiOS開発で悩むこと MVCやMVVMで作ってると、最初開発するときは自由度の高くて楽に実装できるのだが、 ViewControllerやModel層は改修を重ねるごとにどんどん肥大化し、複雑化してしまう。 どんどん肥大化するソースは、情熱がない限り結局誰もリファクタリングしないので、 どんどん負の遺産が増える悪循環になってしまう。 ここ数年ではFlux ArchitectureベースのRxSwiftやReactive Cocoaが流行っているのだが。。。。 使ったことはないが聞く感じ単純にKVOでしょって感がいなめない。。。 データの画面更新は遷移等考えなくても楽だからすごく魅力的だが、イベント数が増えれば管理が大変だし、イベントは非同期だから予期せぬ画面更新が起こりそうだしっていうので少しマイナスイメージが多い感じ なんかいいものないかと色々見てみるとQiitaに面白い記事が。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く