タグ

ブックマーク / qiita.com/yimajo (25)

  • Swiftによるアプリ開発のためのThe Composable Architectureがすごく良いので紹介したい - Qiita

    注意: この記事はv0.39.0以降に対応していません。 初回リリースから0.39.0まで、Effect型はCombine.Publisherプロトコルに準拠していましたが、0.39.0以降はSwift ConcurrencyによりReducerの仕組みが変更されているのでそこら辺をご考慮願います。 Swiftを用いたiOS/macOS/tvOS/watchOSアプリ開発用に The Composable Architecture(TCA)というのがあり、それがめっちゃ良いやん!と思ったのでそれを書いておきます。フレームワーク的に提供されていますが、特にSwiftUIを使ってどういう構成でアプリを作ろうかと考えている人がコードを読むだけでもとてもいい教材になると思います。 The Composable Archtectureを提案しているのは、関数型プログラミングとSwiftについての動画

    Swiftによるアプリ開発のためのThe Composable Architectureがすごく良いので紹介したい - Qiita
    laiso
    laiso 2021/04/13
  • SwiftではバージョンはStructにして演算子オーバーロードで比較したらどうでしょう - Qiita

    はじめに iOSアプリでは現在実行中のバージョンを前回起動した際のバージョンと比較したり、特定のバージョンと比較したりということがあります。そういう時、バージョン表記としてStringで取得できる"1.0.1"のようなカンマが2つある文字列はそのままでは数値として成立しないので比較することが出来ません。その解決方法として、簡単なのはStringのcompareメソッドで比較したりしますよね。ただ、compareするにしても演算子(オペレータ)オーバーロードを使えば表現が分かりやすくなりますよという話を書いておきます。 3行くらいでやりたいことをまとめると iOSで取得できるバージョンの文字列は大抵カンマが2つありそのまま数値にして比較できない Stringの文字列比較で大小を比べられるため大抵はそれをメソッド化する メソッド化するにしてもVersionという型を演算子で比較できるようにしと

    SwiftではバージョンはStructにして演算子オーバーロードで比較したらどうでしょう - Qiita
    laiso
    laiso 2017/12/26
  • iOS で View 用に Entity を Struct に変換するってそれ Protocol で出来ることではないんでしょうか - Qiita

    iOS で View 用に Entity を Struct に変換するってそれ Protocol で出来ることではないんでしょうか この資料は何か? iOS/Androidの勉強会での発表資料です 間違えもあるだろうという部分を修正していきたいので コメント欄にご意見貰えればそれを反映していきたいです 言いたいこと 3つ 要件的にStructに変換する必要があればもちろんやらざるを得ない ただ、Structに変換する際にRealm.ResultやPHFetchResultをループさせて取り出すのはコストが高いよね 単にImmutableにしたいならそれProtocolで出来ませんかね はなしの導入 他の勉強会で、10,000件のRealm.ObjectからStructに変換したら80秒かかったので短縮したとか、しなかったとか 自分の知っている永続化などのフレームワークについて そもそもRe

    iOS で View 用に Entity を Struct に変換するってそれ Protocol で出来ることではないんでしょうか - Qiita
    laiso
    laiso 2017/06/19
  • APIKitでRequestのイニシャライザに渡すのはValueObjectやEntityじゃないほうが良い - Qiita

    はじめに iOSアプリ開発のために、APIKit(もしくはインターフェースをAPIKitふうにしたもの)を利用していると、コードレビューの際に他人の使い方を見ることがあって、そういうときにAPIKitの使い方について人に指摘することがあったのでそれを書いておく。 Requestのイニシャライザに渡すのはValueObjectやEntityじゃないほうがいい APIKitのようなやり方の良さの一つとして、リクエストとレスポンスが何らかのWebAPIドキュメントと見比べたときに明確さがあるということだと思う。 それで大抵の場合、必要なパラメータをイニシャライザで渡すことになるけど、そのイニシャライザでは自作のValueObjectやEntityを渡すのではなく、StringやBool, NSNumberなんかのほうがいいですよという話。 (記事のコメント欄から、自作のValueObjectや

    APIKitでRequestのイニシャライザに渡すのはValueObjectやEntityじゃないほうが良い - Qiita
    laiso
    laiso 2017/04/03
  • iOSアプリ開発でアプリデザイン経験のない人にデザインの納品物をお願いするときのリスト - Qiita

    このTipsはiOSアプリ開発時に納品物定義をする際のリストです。デザインをお願いする他社のデザイナさんがiOSアプリなどの経験がない場合、どのような納品形態として成果物を納めてもらうかということでよく話題になるのでその項目を残しています(同じ社内にいるメンバーの場合は適当にコミュニケーションをとることやググレカスで解決すると思いますが…)。 ですので、デザインに対する細かい指示というよりもそもそも納品物として何がいるんだっけ、どう指定しておけば面倒が増えないんだっけということを書いています。 前提としてディレクターが作ったワイヤーフレームもしくは画面遷移図があり、そのドキュメントを元に他社のデザイナさんとのやりとりがあった後に納品というフェイズがあることを想定しています。 以下がその文 納品物定義 画面全体のデザインとしてのPSDファイル (納品物として管理するために必要となります。フ

    iOSアプリ開発でアプリデザイン経験のない人にデザインの納品物をお願いするときのリスト - Qiita
    laiso
    laiso 2016/08/12
  • Objective-CのLightweight Genericsに使われる__kindofとは何か - Qiita

    最近のObjecitive-CにもSwiftに併せて細かな変更や機能追加がされており、NSArrayやNSDictionaryなどコンテナが保持する型を指定するLightweight Genericsが追加されたことも記憶に新しいですが、その他にも__kindofを型に指定するアノテーションが追加されていました。 2016年、Objective-Cのコードをまだまだ保守していく皆さんのために、今回はこの__kindofについて軽くまとめておきます。 はじめに結論 まず結論から書いておきます。今北産業です。 NSArray *array1; // 何が入ってるかわからん NSArray<_kindof UIView *> *array2; // UIViewとそのサブクラス入ってる NSArray<UIView *> *array3; // UIViewしか入ってないもんね add/setは

    Objective-CのLightweight Genericsに使われる__kindofとは何か - Qiita
    laiso
    laiso 2016/05/24
  • iOSアプリエンジニアがRailsでWebサービスを作るときの学習手順 - Qiita

    はじめに この文書では、普段iOSアプリエンジニアをやっているような人がWebサービスを挫折せずに作りきって公開するまでについての学習手順を、下記の視点で書いています iOSアプリを作ったことがある Gitを日々使っている Webサービスのためのプログラミングもなんとなく知っている HTTPリクエストのGETとPOSTの違いについて説明できる htmlcssの役割を理解している なのでプログラミングしたことがないという人は対象としていないものの、特にiOSアプリの知識がないと読めないほどのことは書いてないという感じです。むしろそんなにiOSアプリの事書いてないからそこに期待はしないで欲しいかもしれません。タイトルは釣りです。 そもそもなぜRailsを選んだかというと、普段iOSアプリ開発で利用するcocoapodsがそもそもRubyGems(以下gem)的にライブラリを管理してくれること

    iOSアプリエンジニアがRailsでWebサービスを作るときの学習手順 - Qiita
    laiso
    laiso 2015/07/22
  • iOSアプリ開発の現場で訊いてみた!メルカリ編 - Qiita

    突撃隣の六木ヒルズ!@yimajoです。 iOSアプリ開発者に最近の開発スタイルを訊いてまわる「iOSアプリ開発の現場で訊いてみた」待望の7社目に行ってきました。 今回はフリマアプリのメルカリ社。 最近六木ヒルズにオフィスを移転したとのことで広くて新しいオフィスでした。 訊いてきたこと インタビューに応じてくださったのはメルカリ社のiOSアプリ担当の@ooba、 @yam86、Androidアプリ担当の@operandoOSでした。 インタビュアーは過去インタビューに応じてくださった@kishikawakatsumiにも同席お願いしました。 執務室に入る前のエントランスはこんな感じ 古いテレビがあったり... 緑の自転車...? 執務室にはいるとバーン!とカフェっぽい Q.メルカリ社に入った経緯を教えてもらえますか? @ooba もともと仕事としてはWindowsアプリを作ったり 個人

    iOSアプリ開発の現場で訊いてみた!メルカリ編 - Qiita
    laiso
    laiso 2015/06/16
  • cocoapodsを導入したプロジェクトでアーキテクチャ周りのビルドエラーになる時 - Qiita

    Pods was rejected as an implicit dependency for 'libPods.a' because its architectures 'armv7s' didn't contain all required architectures 'armv7 armv7s arm64' cocoapodsを使う場合Xcodeはワークスペースを使うが、実際のプロジェクトは'armv7 armv7s arm64'でビルドされるべきなのに、cocoapodsのプロジェクトは'armv7s'しかビルドしていなかったために発生していた様子。 Stackoverflowで同じような症状と解決策を探してみると、podsのプロジェクトの"Build Active Architecture Only"をYESからNOにすべしとあった CocoaPods arm64 issue h

    cocoapodsを導入したプロジェクトでアーキテクチャ周りのビルドエラーになる時 - Qiita
    laiso
    laiso 2015/03/23
  • iOSアプリ開発の現場で訊いてみた!freee編 - Qiita

    確定申告は近所の地域区民センターで提出する派、@yimajoです。 iOSアプリ開発者に最近の開発スタイルを訊いてまわる「iOSアプリ開発の現場で訊いてみた」待望の6社目に行ってきました。 6社目はクラウド会計ソフトfreeeを作られているfreee社! クラウド会計ソフトfreeeとは何か freeeは銀行やクレジットカードのweb明細から簡単に帳簿を作成したり、青色申告決算書や確定申告書Bの出力に対応しているWebベースのアプリケーションです。 従来の青色申告用のアプリケーションはWindows専用が主流だったため、Macを使うiOSアプリ開発者ならfreeeを使ってる方も多いのではないでしょうか? 訊いてきたこと インタビューに応じてくださったのはエンジニアの@yonekawa、@yo_waka、広報担当の@NaoMaemuraの3人。 とくに最近@yo_wakaはfreee社でのR

    iOSアプリ開発の現場で訊いてみた!freee編 - Qiita
    laiso
    laiso 2015/02/12
  • 新人iOSプログラマじゃなくても2014年末から正月にかけて読みたい意識高い本(Swiftを中心に) - Qiita

    この記事はSwift-2 Advent Calendar 2014の23日目。Swiftを紹介しようと思ったら他にも色々書いてしまった。 Swiftで関数型プログラミング 原題Functional Programming in Swift。ベストプラクティスを追い求めてるobjc.ioの人たちが書いた。ebooks版(PDF, ePub)が安く、なんとダウンロードしたサンプルコードがPlaygroundsで実行できる。 きっかけはQuickというOSSの開発者から薦めてもらった @yimajo enumとswitchSwiftの割といいところだと思う!でも自分もFunctional Programming for Swiftを読むまでは知らなかった and 理解できていなかった — Brian Gesiak(もどかしい) (@modocache) 2014, 11月 18 サンプル版

    新人iOSプログラマじゃなくても2014年末から正月にかけて読みたい意識高い本(Swiftを中心に) - Qiita
    laiso
    laiso 2014/12/24
  • あなたが勉強会を開く際に覚えておきたい10のTips - Qiita

    「発表方式のIT系勉強会」や「もくもく会」を開催する際にどうやったら上手く行くんだろう、という疑問を持つあなたのために、勉強会を開催する際のTipsをまとめてみた。 発表方式のIT系勉強会を開催する際のTips 「雨で遅れている方がいらっしゃるようなので開始時間を遅らせましょう」は 良くない 気持ちはわかりますよ。人が来ないと意味がないですもんね。 しかし、早く出発してちゃんと到着している人たちの気分はどうでしょう?「こんなことならゆっくり来ればよかった」「雨の中走ったあれは何だったんだろう」「どれくらい時間を遅らせるんだろう。帰る時間が遅くなるんじゃないか」「まだこれから待たないといけないのかよ」とかそういうこと思ったりしないでしょうかね。 急に雨が降ってきたならまた状況が違うかもしれませんが、しかし、 雨が降っていて時間通りに目的地に行くためには、早く出発しないといけない というのは当

    あなたが勉強会を開く際に覚えておきたい10のTips - Qiita
    laiso
    laiso 2014/11/21
  • iOSアプリ開発の現場で訊いてみた!Wantedly/Siori編 - Qiita

    iOSアプリ開発の現場で訊いてみた!シリーズ第4回。Wantedly社のCTOである@kawasyに呼ばれて行ってきました。 @yimajo ウチにもまた遊びに来てください! — Yoshinori Kawasaki (@kawasy) 2014, 8月 18 訊いてきたこと インタビューに応じてくださったのはWantedly社の@reikubonaga、@susieyy、@jun0342の三人。 ユビレジ編でインタビューに応じてくださった @kishikawakatsumiは今回もインタビュアーとして参加しました。 Q.作業している机の広さはどれくらい? ↓写真をお願いしたら気さくに片付けてくれる@reikubonaga ↓ 机の広さは伝わりますかね? ↓用事があったようで残念ながらインタビューに参加されていなかったデザイナの@ferasyasin@githubの机 机にデザインパターン

    iOSアプリ開発の現場で訊いてみた!Wantedly/Siori編 - Qiita
    laiso
    laiso 2014/10/21
  • iOSアプリ開発の現場で訊いてみた!新生ヤフー・ヤフオク!編 - Qiita

    段々と風が涼しくなってきて秋の気配を感じている@yimajoです。 第三回目の「iOSアプリ開発の現場で訊いてみた」はヤフー株式会社さんにお邪魔して、ヤフオク! iOSアプリの開発について伺ってきました。 好評だった第一回と第二回のリンクもまとめときますよ。 iOSアプリ開発の現場で訊いてみた!ユビレジ編 iOSアプリ開発の現場で訊いてみた!フリル編 訊いてきたこと インタビューに応じてくださったのはヤフー社でiOSのヤフオク!アプリを開発している@mao_nishiと@himara2の二人。 インタビュアーは前回それぞれインタビューに応じてくださった@ninjinkunと@kishikawakatsumiが今回はインタビュアーとして参加しました。 現在、ヤフオク!アプリにはiOS/Androidあわせて25人の開発メンバーが関わっており、@mao_nishiと@himara2の二人でiO

    iOSアプリ開発の現場で訊いてみた!新生ヤフー・ヤフオク!編 - Qiita
    laiso
    laiso 2014/10/06
  • iOSアプリ開発の現場で訊いてみた!フリル編 - Qiita

    夏の暑さでメシが旨い!@yimajoです。 iOSアプリ開発者に最近の開発スタイルを訊いてまわる「iOSアプリ開発の現場で訊いてみた」待望の二社目に行ってきました。 二社目は今話題のフリマアプリ Fril(フリル)を作られているFablic社! フリルとは何か フリルはiOSやAndroid端末を使って気軽に自分のモノを売ったりして楽しめるフリマアプリ。女性専用でたくさんのファンを抱えているアプリだそうです。 私自身は使っていないんですが、最近、電車に乗っているとOLの人たちが洋服のアプリといえば"フリル"、"ピンタレスト"とかって口にされているのが耳に入ってくることがありますね。 訊いてきたこと インタビューに応じてくださったのはFablic社のモバイルチーム@tmnb、@ninjinkun、@cutmailの三人。 ↓とくに@ninjinkunさんは最近では「【翻訳】あなたが求めていた

    iOSアプリ開発の現場で訊いてみた!フリル編 - Qiita
    laiso
    laiso 2014/08/18
  • 他社のiOSアプリ開発の現場で聞きたいこと - Qiita

    他社のiOSアプリ開発者と話す時、いつも同じことを聞いていたのでそれをまとめておく 特にiOSに関連深い事柄 バージョン管理システムは何を使っているか ホスティングサービスは何を使っているか プロジェクト管理ツールは何を使っているか コードレビューはどのように行っているか ブランチの運用はどのようにやっているか Storyboardやプロジェクトファイルなどでコンフリクトが起こらないように工夫しているか その他、開発の進め方に関連深い事柄 アジャイル開発(もしくはその一部のどのような部分)を取り入れているか 「開発環境の改善とかコミュニケーション改善で自慢したいところ」はあるか 現状の開発に関する不満点や改善したい点などあるか テストはどのようにやっているか 実際に自分が訊いてきたものは下記にまとめている iOSアプリ開発の現場で訊いてみた!ユビレジ編 iOSアプリ開発の現場で訊いてみた!

    他社のiOSアプリ開発の現場で聞きたいこと - Qiita
    laiso
    laiso 2014/07/23
  • WebAPIを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方の解説 - Qiita

    このドキュメントはSwift1.0以前のベータ版時に書かれたものです。現状のSwift仕様とは大きく乖離している可能性があります はじめに 久しぶりに訪れた梅雨晴れの朝に油断をして、傘を持たずに外に出てしまった人は多かったのではないでしょうか。梅雨明けはまだまだずっと先で、夏が待ち遠しい。というかずっと春であって欲しいyimajoです(ちなみに上の写真は私ではありません)。 今週もWantedly社で開催された第2回Swift 勉強会 - LT会に参加し、「WebAPIを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方の解説」というタイトルでLTしてきたのでその内容を公開しておきます。 発表資料は「WebAPIを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方」はSlideShareにア

    WebAPIを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方の解説 - Qiita
    laiso
    laiso 2014/06/26
  • Swiftで名前空間を利用する - Qiita

    <この記事は自社のブログにも転載しました> 2014.6.5に第1回 Swift 勉強会 - ファーストインプレッションを語る会がWantedly社が開催されたので参加し、「Swiftは名前空間あるって言ったのに公開されてるドキュメントに書かれてないのどういうことなの」的な相談をしてきました。たしか結論は出なかったのですが、さっき寝てたら思いついたのでそのメモを残しておきます。 (もしご意見などがある場合、白昼夢のなかでビルドしたみたいな体でコメントを書いていただけるとAppleとのNDA的にセーフっぽい香りがするのではないかと思います) 名前空間の定義 ちなみにここでの名前空間の定義はWikipedia - 名前空間から ソースコード上で冗長な命名規則を用いなくても名前の衝突が起こらないようにし、しかもそれを容易に記述できるようにするためだけの概念 とします。 名前空間の利用法 まず公開

    Swiftで名前空間を利用する - Qiita
    laiso
    laiso 2014/06/06
  • やはりお前らのCoreDataの使い方も間違っている - Qiita

    <この記事は自社のブログにも転載しました> 少し歩くと汗ばんで、春の陽気を感じます。 こんにちはyimajoです。 クックパッドさんが月イチで行っている第6回potatotips(ポテトチップス)という開発Tips共有会が開かれたので参加させてもらい、『やはりお前らのCoreDataの使い方も間違っている』というタイトルで発表させてもらいました。 今回が3回目の発表&参加だったので、過去自分が発表したものもリンクしておきます。 potatotips#5 クックパッドでジョブズも成仏する開発Tips発表したったwww potatotips#3 やはりお前らのiOS7対応は間違っている 今回の開催場所はUIEvolution株式会社さんということで、あまりメディアで公開されてない社内を少しだけ体験することも出来ました。 (写真は海外出会い系iOSアプリに使われたライブラリの説明を聴いてるとこ

    やはりお前らのCoreDataの使い方も間違っている - Qiita
    laiso
    laiso 2014/04/10
  • OHHTTPStubsを使ったiOSアプリ開発の進め方 - Qiita

    概要 スタートアップiOS勉強会 #3 http://www.zusaar.com/event/4557003 自分もこれで話す内容についてずっと考えていて、laisoさんのスタートアップの人材戦略とは何かを読むと先にLTの内容を公開していたのでこちらも公開することにした。 10分以下のLTだと細かいことは多分話せないので、先におおまかに公開し実際のLTでは自分の特に話したいことを集中して話すようになるのではないかと思う(もしくはジョブズが成仏した話みたいに当日思いつきでぜんぜん違うことを言うかもしれないし、もしくは近所にガールズバーができたから行ってみたらビール一杯3080円だった話になるかもしれない)。 スタートアップに関する話について 経験上、iOSアプリ開発ではWebアプリ開発のようにいきなり大人数で開発を進めることがないので、iOSアプリ開発での技術的ノウハウやあるあるネタはスタ

    OHHTTPStubsを使ったiOSアプリ開発の進め方 - Qiita
    laiso
    laiso 2014/03/29