Guild icon
swift-developers-japan
コミュニティ / iosdc
Avatar
omochimetaru 9/15/2017 2:18 AM
3
Avatar
6
Avatar
5こなかった。
Avatar
おい
Avatar
omochimetaru 9/15/2017 2:18 AM
Avatar
6って打ってる間に5が来る読み
Avatar
なにこの時間差攻撃w
2:19 AM
ごめんね今iPhoneだから()
7:53 AM
やっと東京着いた…
Avatar
9 お疲れ様です。お待ちしてます
Avatar
10 明日から参戦します
Avatar
キャーkoherさーん
Avatar
聞きたいセッションが結構被っててつらみ
Avatar
SwiftLintXcode - An Xcode plug-in to format your code using SwiftLint.
Avatar
omochimetaru 9/16/2017 6:44 AM
発表に出てきたのはこっち https://github.com/norio-nomura/SwiftLintForXcode
SwiftLintForXcode - a sample of Xcode Extension that runs swiftlint autocorrect
Avatar
norioさんって言ってたなそう言えば
Avatar
starが増えた理由はこれか。
Avatar
今日クロージング終わったあと @hiragram @tarunon @omochimetaru と焼肉いこうって言ってるんですが他に時間ある方よかったらいっしょに行きませんか?
🍴 1
Avatar
omochimetaru 9/17/2017 5:01 AM
Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
5:01 AM
ここのウィーフィーはやい
Avatar
焼肉〆ました
Avatar
この間のiosdcプレゼンをpdfにしてslideshareにアップしましたけど、日本語の文字が見れませんね。何かtrickはありますか?
Avatar

追記: 一番オススメの対処法 (忙しい人向け) 📝

@a_bicky さんがご提案された次の方法で、とりあえずこの問題は回避できます! 情報ありがとうございます! 🎉 ```bash LANG=...
12:50 AM
以下の表示がされました。
This uploaded file has been marked private by the author. Sorry!
(edited)
Avatar
@mono ありがとうございます。やってみます。
Avatar
Speaker Deckはこの問題無いですが、そちらはスライド内のリンクが効かないのが不満です 🤔
Avatar
アクセス権限も日本語もバッチリです 🙆 🎉
🙏 1
Avatar
@Ray Fix スライド自体のタイトルは問題無いですが、SlideShareに入力しているタイトルが「これ、リックしますか?」となってしまっているミスがありますね 🐶
Avatar
Kishikawa Katsumi 9/18/2017 10:11 AM
http://blog.kishikawakatsumi.com/entry/2017/09/18/175208 今年はちゃんとブログ書いた 💯 昨日koherさんとかに教えてもらって参加しました。よろしくお願いします👋🏻 (edited)
speakerdeck.com 日本で開催されるもっとも大きなiOSに関するカンファレンスの1つであるTop | iOSDC Japan 2017に参加し、表題の内容で発表しました。 聴いてくださった方々からは好評のようでよかったです。発表資料は本題と関係のない話がちょこちょこ挟まったり、口頭の説明がないとわからないページがあり、スライドだけでは意図がよく伝わらない恐れがあるので、こちらで内容について補足します。 伝えたかったテーマは「依存が大きく複雑で、単体でテストしづらいコードを単体で動かしてテストできるようにするには」ということです。その題材として一般的に依存が複雑でテストしづらいコンポ…
🤗 9
Avatar
2017年9月15日〜17日の3日間(前夜祭含む)で開催されたiOSDC2017のまとめです。 iOSDCに参加できなかった方やあとで見返したい人のために、発表資料などをまとめました...
5:23 AM
Avatar
omochimetaru 9/19/2017 5:24 AM
参加者ブログ全部まとめるのやべえw
5:24 AM
ワイも早く書かないと
👀 3
Avatar
トークの内容などは他の方がたくさん書いてるのでそういうのは割愛して感想だけ。 前回のiOSDCに参加したときはただトークを聞いてふんふんして終わったから帰るか〜という感じで当時はそれで満足していたけど、今年はTwitterで繋がってた人と初めて挨拶できたり僕が以前別の場所でした発表を聞いて覚えててくれた人に声かけられたり@tarunonと@omochimetaruにくっついてたらすごい人を連れてきて議論してるのを聞けたり今までつながってなかった人と新しくつながれたり当日適当にメンバーを集めて終了後に焼肉に行くというコミュニティの一員感のあるムーブが出来たりしてよかった。 こういうカンファレンス…
🙂 3
Avatar
編集リクエストが2件しかなく、コメントでのやりとり中心ですね 🤔 http://qiita.com/ozwio/items/855dc0f891ee3dbb8db0/revisions (edited)
「iOSDC 2017 まとめ」の編集履歴です。
Avatar
omochimetaru 9/19/2017 5:27 AM
Qiitaの編集リクエストで来ても結構困ると思う 記事が長いからdiffがわからない
🤔 1
Avatar
あれってgithubみたいなdiffの見え方じゃないんだっけ?
Avatar
omochimetaru 9/19/2017 5:27 AM
差分のとこは赤と緑になるけど基本的に全文出る
Avatar
ああw monoさんのリンク見た。
5:28 AM
確かにどえらい長いなw
Avatar
omochimetaru 9/19/2017 5:28 AM
Qiitaの人に会うたびに要望伝えてるからいつか治る
Avatar
最近僕の出したやつも分かりにくい 🤔 http://qiita.com/asuka0130/items/ce51488c0bf65ec7319c/revisions/1
「Swiftローカルリファクタリング(Swift Local Refactoring)」の編集履歴です。
Avatar
omochimetaru 9/19/2017 5:30 AM
行中の差分も出ないのか。てかチャンネル違い
🐶 1
Avatar
@Ray Fix さんの「これ、リークしますか?」の資料で、self による循環参照が気になっていたところが資料アップデートされて対応されてた👏
Avatar
@Biacco42 はい、結局、結果がまだno leakですけれど、図が間違ってましたね。すみませんでした。😬 😅
😀 1
Avatar
@norio_nomura たいへん参考にさせていただきました、ありがとうございました!
🙂 1
9:13 AM
静かだ…
Avatar
iOSDC Japan 2018でプレゼントしているDeployGateのロゴ入りQiワイヤレス充電器ですが、な、なんと!!!本日分は終了しました😳✨明日も配布する予定ですので、本日ゲットできなかった方は明日再チャレン...
10:06 AM
もらえました
😀 2
👍 1
Avatar
最終日まで静かだ…
Avatar
applideveloper 9/2/2018 7:53 AM
休憩時間に流している動画、スポンサーのCMとか流したらいいのに
Avatar
お疲れ様でした〜!!!
🙌 2
👏 2
Avatar
お疲れ様でした!楽しかった😇
🙌 1
👏 2
Avatar
https://www.icloud.com/keynote/0vgTYDXyHQTd0l1FKTiF1jT7g#MicroViewController-en @tarunon workspaceに機能ごとのproj作って管理する方法やってみようかなと思っているのですが、Development structureのところのprojの分け方ってどんな粒度でやっていますか?
Shared by 齋藤暢郎
Avatar
大きな機能でまず分けていて、それとは別に活発に開発の走るプロダクト用のFrameworkも分けています
10:28 AM
アプリケーションをザッと木構造に見立てて枝をFrameworkにするのがやりやすいと思います
Avatar
ありがとうございます、機能.projの中に複数のフレームワークが存在しているみたいなイメージですね
Avatar
Framework毎にproj作った方がいいですよ
2:15 PM
pbxprojのコンフリクト減るので
Avatar
1pbxproj - 1Frameworkなるほど、proj結構増えちゃうかなと思ったんですけど
アプリケーションをザッと木構造に見立てて
この辺うまくやれるかにかかってそうですね…
Avatar
アプリケーションをザッと木構造に見立てて枝をFrameworkにする Framework毎にproj作った方がいい
これって xcodeproj を入れ子にしてツリー状にするということですか?「枝」は「葉」の間違い?
4:49 AM
大元の会話まで遡ってないので変なこと言ってるかもですが・・・。
Avatar
枝毎frameworkで、もしその中で分けたくなったら新しいxcodeprojを作ります。xcodeprojはぽこじゃか増えますが、Xcode10でツリー定義できるようになるのでそこまで苦痛ではないかと
4:49 AM
最初から葉で分けちゃうと、かなりハードモードになるのでオススメできない
4:50 AM
枝というのは例えば設定画面で、葉というのはその中の通知設定が該当すると思います
Avatar
なるほど。概念上はツリーだけど、プロジェクトの構造上はもっと粗くルートから生えてる枝単位くらいで xcodeproj を作って、細分化したくなったらさらに細かく分けるということですね。
4:54 AM
細分化したときには xcodeproj を入れ子にしますか?それとも xcworkspace にフラットに入れますか?
Avatar
フラットで良いと思いますよ。結局実際はきれいなツリーではなく複数参照もあるし結構大変なので
4:55 AM
身動き取りやすいのが良いと思います
👌 3
Avatar
@tarunon 上記の流れと、ViewControllerのTypeErasureも試してみています。 apply<R: ViewControllerRequest>の中身を実装しているところで、型解決ができず、 as! R.EnvironmentResponse するとうまくいくのですが、force cast無しで解決できてますでしょうか? https://speakerdeck.com/mercari/mtc2018-implementing-typeerasure-in-viewcontroller?slide=31
Speaker: Nobuo Saito To develop our app, we use MicroViewController, which we introduced at iOSDC, and we have also implemented the idea of MicroFrameworks. A common issue with using MicroFrameworks is circular dependencies, but by using the MicroViewController model, we can...
Avatar
できないです、force cast忘れてるミスがあった気がする
Avatar
また、こちらではwhere句に V: UIViewControllerを付け足さないと動かず、入れたらうまく動きました。 https://speakerdeck.com/mercari/mtc2018-implementing-typeerasure-in-viewcontroller?slide=29
Speaker: Nobuo Saito To develop our app, we use MicroViewController, which we introduced at iOSDC, and we have also implemented the idea of MicroFrameworks. A common issue with using MicroFrameworks is circular dependencies, but by using the MicroViewController model, we can...
👏 1
11:12 AM
そうなんですね!
Avatar
VCR解決するgatewayは、forceキャストもりもりになってしまいます。ただ、それはGenericsで実装しようとするからで、VCRの定義を全てオーバーロードする方が
11:14 AM
網羅性も担保できるしforce castも必要ない、と結構いいことが多いです
Avatar
なるほどです。その場合、Genericsのapply<R: ViewControllerRequest>はfatalErrorとかにしておいて、具体的なRequestについては全てここに実装していくというイメージでしょうか?
Avatar
Genericのapplyは存在せず、1つずつのVCRを受け付けるapplyが沢山ある、テストの時はgenericなapplyでplainなvcを返す実装を使う、というイメージで良さそうです
Avatar
その場合、EnvironmentProvider@MercariKitが、SearchViewControllerRequest@MercariEntityを知る必要が出てくる気がするのですが、MercariKitとMercariEntityは循環参照しているのでしょうか?
Avatar
KitとEntityをわけると、overloadアプローチは使えないので
11:27 AM
同一のレイヤに置く必要はでてきちゃいます
Avatar
なるほどです。 RequestかEnvironmentProviderどちらかをレイヤー移し替えないといけないということですね。移し替えるならRequestでしょうか? 今現在、メルカリではoverloadではなくgenericsを使っているんでしょうか? (edited)
Avatar
genericsです
12:06 PM
レイヤ分けをどうするか…はちょっと今今はいいアイディアがないです、試せていないので。
👌 1
Avatar
結局、ViewControllerRequestを作成するのにEntityが必要なので、EnvironmentProviderをEntityに持っていくことにしました。
6:30 PM
@tarunon ContainerViewのレイアウトについてもお聞きしていいですか? こちらの使ってないContainerViewが二つ(上の青いものと、下の真ん中の赤いもの)あると思うのですが、これらはなんのためにあるのでしょうか?
Avatar
青いものはメッセージのバナーが出て、赤いものはオファーボタンが出ることがあります
Avatar
なるほどです!
Avatar
@tarunon さん、MicroViewControllerのやり方について、質問があります。 親VCと子VCのやりとりって、 InjectableInteractableなどのProtocolを介すやりとり以外はしていない感じでしょうか? Frameworkをまたぐ時にはTypeErasureのためにそういったのが必要になるのもわかるのですが、Framework内のVC同士の値のやりとりって割と自由にしてもいいものでしょうか?
Avatar
9:45 AM
親VC子VCのやり取りは、孫ができると途端に辛くなることがわかっていて
9:46 AM
今は巨大な一画面ごとに一つのストレージを持つように変化してきています
9:48 AM
そうなるとFramework跨ぎも辛くなってくるので 1. 1画面 1framework 2. ストレージの中の型をimportできるようにする 3. ストレージの中の型は共通で参照できる外側に置く(第三のframework) のどれかかな〜と考えているのですが、何がベストかはサイズ感によるのではないかと予想しています。ただDynamicFrameworkだと、数が増えると起動が遅くなるデメリットも大きいので
9:49 AM
いろいろ考えることは多いと思います。
Avatar
なるほどです・・・!確かに孫ができると辛いですね。 Environmentがアプリ共通のストレージのイメージだったのですが、それとは別に画面ごとにストレージを持つようなイメージでしょうか? VCは(Input, Environment, Storage)の3つを使ってinitするようなイメージですかね。
Avatar
例えばCoreDataやRealmを使う場合を例にあげると、referenceとなるIDはInputから渡して、DBの本体はEnvironment側に置くと、綺麗に作れると思います。
Avatar
すみません、CoreDataもRealmもProductionで使ったことがなくちょっとイメージがつきませんでした😰
Avatar
MVVMで考えると、Modelのところをちゃんとデータベースを作っておいて https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel
10:23 AM
VMとMの間にGateway(Environment)挟んでおけば大体良さそう、という肌間です
10:25 AM
一番最初はただのDictionaryで試してみるのがいいかもしれません。
10:25 AM
[String: Any]でキャストすれば一番原始的なものが作れます。
Avatar
なるほど・・・!少しイメージ湧いたかもしれません。。。 では、「一画面ごとに一つのストレージ」というのは、結局Environmentに含まれているのでしょうか?
10:31 AM
最初聞いたときはこういうのを想像していましたが public protocol Instantiatable { associatedtype Input associatedtype Environment associatedtype Storage var environment: Environment { get } var storage: Storage { get } init(with input: Input, environment: Environment, storage: Storage) } (edited)
Avatar
うーん、そこはもしかしたら、使いやすくアレンジしても良いかもですね。
Avatar
ところで、 Environmentに [String: Any] こういう風にTypeEraseして保存しておくのは、画面に固有のModelとかが入っているイメージだからでしょうか?
Avatar
Anyで渡してるのは、そうですね。何でも入れれるようにするためです
Avatar
なるほどです。 その場合、EnvironmentのAnyをFramework側でキャストする時に失敗しない保証がないのが不安といいますか、そういうのは気にしない感じですかね・・・?
Avatar
例えばAnyのフィールドに値を入れる方法と取り出す方法があって
11:18 AM
その両方が型が決まっていてかつ、AnyへのI/Oがその方法しかないのであれば (edited)
11:18 AM
ForceCastでも問題はないはずです。(ただ初期値がnilならnilチェックは必要)
Avatar
なるほど!I/Oの方法を絞っておけば確かに問題ありませんね。 かなり納得できました!!! ありがとうございます。
Avatar
宣伝失礼します🙇🏻‍♂️ iOSDC Japan 2022のトーク募集 & パンフレット記事募集を開始しました。ご興味ございましたらぜひご検討ください😊 トーク 公募期間: 5/12(木)~ 6/6(月)24:00 内容: レギュラートーク 20分 + 質疑応答5分 レギュラートーク 40分 + 質疑応答5分 LT 5分 詳細はこちら: https://t.co/b7U1AdAQFO ※ 今年はオフライン + オンラインのハイブリッドになっており、 レギュラートークは会場(東京都内で調整中)で実施頂くか、事前に収録したものを放映するかを選択可能ですが、会場実施の方含め、全てのスピーカーの方に最低1回の収録をお願いします。 また、LTについては会場で実施頂くか、Zoomによるライブ実施を選択可能です。 パンフレット 公募期間: 5/12(木)~ 5/30(月)24:00 内容: 2ページ or 4ページ or 8ページ 詳細はこちら: https://t.co/vgldK0xxmn#iosdc (edited)
🙌 16
Avatar
こんにちはこんにちは! Swift言語コミュニティに興味があるとある企業の1個人です
swift 5
🍵 1
Avatar
こんにちは!
Avatar
omochimetaru 9/6/2023 1:51 AM
あ、inductorさん 先日はどうもでした
swift 1
Avatar
こんにちは😃
Avatar
わいわい
Avatar
ワイワイ
Exported 128 message(s)
Timezone: UTC+0