なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? - 健人 井関
はじめに ①ViewControllerから処理の一部を切り出したい → ViewControllerの肥大化 ②ViewControllerで状態(フラグ)を意識したくない → フラグ管理がカオス ③ユニットテストしやすくしたい → テスト容易性 上記の課題を解消する一つの方法をご紹介します。 その答えは、「条件分岐を減らす」です。 環境 XCode : 8.0 Swift : 3.0 今回ご説明する例 今回は、下記のようなシンプルな例で説明します。 ①ログオフ状態の場合、ログインボタンを表示する(フォントカラーは青色) ②ログイン状態の場合、ログアウトボタンを表示する(フォントカラーは赤色) 1. Badケース まず最初にBadケースをご紹介します。 ViewController内でログイン状態を意識し、 ログインとログオフで処理や表示に違いがある度に、 条件分岐が増えてしまいます。
「デザイン = かっこ良くすること」だとは限らない。 デザインとは? 設計 複雑な問題を整理して解決すること わりとエンジニアリングに近い 文章を書く練習をすれば読みやすい文章を掛けるようになるのと同様に、勉強すれば人を困惑させないデザインは作れる。 ヒューマンインターフェースの原則 インターフェース = 接点、境界面、接触面、接合面、仲立ち、橋渡し ヒューマンインターフェース = 人とモノをつなぐもの ヒューマンインターフェースの原則 = アプリがユーザーとコミュニケーションをする時の原則 1.必然性のあるビジュアル 機能と外見が調和しているか? TPOにあわせた格好をさせる ユーザーとコミュニケーションを取る ドレスコードみたいなもの(例:ゲーム:楽しく、ツール:信頼性ありそうな) 機能に最適な外見を与えることで... 使い方がつたわる。 とっつきやすくなる 2.一貫性 アプリ全体でル
いつもiOS開発で悩むこと MVCやMVVMで作ってると、最初開発するときは自由度の高くて楽に実装できるのだが、 ViewControllerやModel層は改修を重ねるごとにどんどん肥大化し、複雑化してしまう。 どんどん肥大化するソースは、情熱がない限り結局誰もリファクタリングしないので、 どんどん負の遺産が増える悪循環になってしまう。 ここ数年ではFlux ArchitectureベースのRxSwiftやReactive Cocoaが流行っているのだが。。。。 使ったことはないが聞く感じ単純にKVOでしょって感がいなめない。。。 データの画面更新は遷移等考えなくても楽だからすごく魅力的だが、イベント数が増えれば管理が大変だし、イベントは非同期だから予期せぬ画面更新が起こりそうだしっていうので少しマイナスイメージが多い感じ なんかいいものないかと色々見てみるとQiitaに面白い記事が。
この記事は RECRUIT MARKETING PARTNERS Advent Calendar 2015 の投稿記事です。 こんにちは。英語サプリのiOS担当の大島です。英語サプリは10月末にリリースしたばかりのサービスで、アニメーションやBGM・効果音を取り入れたゲーム感覚の英語学習アプリです。iOS版とWeb版がリリース済みでまだサービスは始まったばかりですが、開発期間も短い中でクオリティにこだわってローンチすることが出来ました。当エントリでは、iOSアプリケーションの設計手法について紹介していきたいと思います。 DDD(ドメイン駆動設計)で複雑さと戦う 複雑なiOSアプリケーション開発をしていると以下のような問題点で悩まれているエンジニアの方も多いのではないでしょうか。 すぐにFatになってしまうUIViewController 複数のフラグで状態を管理するUIViewContro
About the content This talk was delivered live in September 2016 at try! Swift NYC. The video was recorded, produced, and transcribed by Realm, and is published here with the permission of the conference organizers. When the Instagram team rewrote their iOS feed from the ground up, they learned more than they anticipated about collection views, diffing, and the dangers of too much spaghetti code.
About the content This content has been published here with the express permission of the author. Introduction (0:00) Swish is a framework that is a wrapper around NSURLRequests. It provides some structure to building requests and executing them in your app. Generally, I’ve seen a lot of huge web service classes with really broad interfaces. It’s similar to the massive view controller problem, whe
iOS 8 introduces 2 new Info.plist keys to explain the user why you (even in background) need access to his location. From iOS 4 through 7, this was done in run-time using the Ti.Geolocation.purpose property. Multilingual apps Now this has moved to the static Info.plist – which in Titanium you’d normally set in the tiapp.xml‘s ios > plist section – you might wonder how to set a specific text for ea
Xcode6を使った多言語対応 本日はXcode6(正確にはXcode6.1.1)で多言語対応する方法を書きます。 全スクリーンショットを載せます。 まず、多言語化に使うサンプルプロジェクトは下記です。 StoryboardにはLabelとButtonを1つずつ配置します。 ソースは下記とします。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 // ViewController.m #import "ViewController.h" @interface ViewController () <UIAlertViewDelegate> @property(strong, nonatomic) UIAlertView *alert; @end @impl
他サイト様の引用ばっかりで恐縮ですが、説明がわかりやすかったのでこちらにメモっておきます。 dispatch_get_global_queue と dispatch_queue_create の違い (Nacho4d - programming notes: December 2010 より) メインキュー : メインスレッドで実行 dispatch_queue_t main = dispatch_get_main_queue(); グローバルキュー : バックグラウンドで実行 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); プライベートキュー : バックグラウンドで実行、名前付きのキュー dispatch_queue_t queue = dispatch_queu
技術部モバイル基盤グループの三木(@giginet)です。 去る9月13日、「Cookpad Tech Kitchen iOSアプリの継続的デリバリーへの取り組み」と題して、iOSエンジニア向けの技術交流イベントを行いました。 このイベントでは、iOS開発の中でも特に大規模アプリの開発フローや、品質改善を支えるための技術をテーマに、弊社のエンジニアから3つの発表をしました。 この記事では、その様子についてお伝えします。 クックパッドiOSアプリの品質管理のための取り組み まず、技術部品質向上グループの松尾(@Kazu_cocoa)から、クックパッドiOSアプリ開発体制について紹介しました。 20160913 cookpad ios_jp from Kazuaki MATSUO この発表では どのような組織構造を元にアプリ開発が行われているか 月1のリリースサイクルを実現するためのリリースフ
Type your search terms above and press return to see the search results. iOS 10 gave us new rich notifications with a lot more functionalities comparing to old ones. We can view photos and videos or respond to a message right from our notifications. In this post I would like to focus on them, show you some code snippets, examples and good practices. I hope it will be helpful for development in you
はじめに アプリによってビジネスモデルは異なりますが、大多数のアプリがゴール(KGI)にしているのは売上増かと思います。 では、あなたは売上増に向けた指標の把握と整理ができているでしょうか? この記事ではKPIツリーを使ってアプリの売上に貢献する指標を洗い出し、各指標について説明したいと思います。 1.KPIツリーの重要性 ◆そもそもKPIツリーとは? KPIツリーとは、例えばアプリのKGIを売上とした場合、売上を構成する要素を分解して施策が実行可能になるレベルまで落とし込まれた指標(KPI)の一覧です。 ◆KPIツリーを作らない場合の問題点 ①ボトルネックとなっている問題がわからない 売上を構成する要素を洗い出さないと、売上増の妨げになっている問題に気づかないことがあります。 ②具体的な施策を考えるのが難しい 売上やアクティブユーザー数など上位の指標を分解しないままでは、「じゃあその指標
Feb 12, 2015 先日気付いてしまった. iOS8に,こんなに便利なクラスが追加されていたとは・・・. iOS7は,NSStringのメソッドでパーセントエスケープを実行するとなぜかデフォルトだと&(アンバッサンド)をエスケープしてくれなくてブチ切れるという,妖怪不祥事案件で言う所のいわゆるクエリ付きのURLにきちんとアクセスできないというヤツを引きおこしていました. この二つの使い方は,至って簡単. まずは,URLの生成. NSURLQueryItem *item1 = [NSURLQueryItem queryItemWithName:@"key1" value:@"hoge"]; NSURLQueryItem *item2 = [NSURLQueryItem queryItemWithName:@"key2" value:@"あいうえお"]; NSURLComponents
こんにちは、買物情報事業部の三浦です。 日々アプリを使っていて、ふとしたところでさりげないアニメーションや気の利いた効果音があると心地よく感じますね。 UIKitには手軽にアニメーションを実装できるようにAPIが用意されています。少し工夫するだけで効果的な動きを作ることができます。 サンプルを見ながらみていきましょう。 Basic まずはUIViewのクラスメソッドのシンプルなアニメーションです。 オブジェクトを下にアニメーションさせます。 UIView.animateWithDuration( 0.5, delay: 0.0, options: nil, animations: { () -> Void in self.circle.center = CGPoint(x: 0, y: 100) }, completion: nil) 動きの加減をコントロールするイージングもUIViewA
Xcode8 でシステムが出す不要なログが大量に出て開発しづらかったのですが、対策を知ることができました。 https://twitter.com/rustyshelf/status/775505191160328194 Qiita にはまだ無い情報のようでしたので投稿します。 @rustyshelf さん、そしてこの情報をリツイートしてくれた @mono0926 さんに感謝します Product -> Scheme -> Edit Scheme... を選択 Environment Variables に OS_ACTIVITY_MODE = disable と値を追加 これで不要なログが出ないようになります。 なお、上記設定をすると、実機での開発時に自分で NSLog() したログも一緒に出なくなってしまうことがあるようですが、そういうときには NBULog などの CocoaLumb
With few exceptions, using Xcode preprocessor macros is a code smell. C++ programmers have had this beat into them: “Don’t use the preprocessor to do something the language itself provides.” Unfortunately, more than a few Objective-C programmers have yet to get that message. This post is part of the Code Smells in Objective-C series. Here’s a handy command to run from Terminal. It examines source
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く