Swift part11 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/06/28(水) 17:58:29.74ID:KUDOoNV30
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

関連スレ

プログラミング言語Swift Part4
http://egg.2ch.net/test/read.cgi/mac/1484763495/

[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad]
http://egg.2ch.net/test/read.cgi/mac/1484217623/

Xcode part14
http://egg.2ch.net/test/read.cgi/mac/1476190499/

Swiftアンチスレ part1
http://mevius.2ch.net/test/read.cgi/tech/1458491343/


前スレ
Swift part10
http://mevius.2ch.net/test/read.cgi/tech/1487552413/

スレ立て時は1行目に「!extend::vvvvv」
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
311デフォルトの名無しさん (ワッチョイ 45b3-3BEe)
垢版 |
2017/10/03(火) 06:13:48.23ID:0Z/dxYPK0
xcode XくらいでAppleがMVVM的なフレームワーク出してくるかな
RXは早く死に絶えて
2017/10/03(火) 09:08:20.42ID:J3lXzdgmd
ライブラリレスなんていう移植無視な開発なんてやらぬ
2017/10/03(火) 19:58:34.43ID:/WY76Y0Hp
>>308
バッテリの減りは初耳
裏で動く処理が多いから?
314デフォルトの名無しさん (ササクッテロリ Spe1-3BEe)
垢版 |
2017/10/03(火) 22:32:52.14ID:djTGgeKPp
reduxの画面の更新
315デフォルトの名無しさん (ササクッテロリ Spe1-3BEe)
垢版 |
2017/10/03(火) 22:43:47.08ID:djTGgeKPp
iOS11にしてからクソ
2017/10/04(水) 00:44:41.84ID:Gppgeajp0
Swift 4になってからコンパイルめっちゃ遅くね?
Xcodeが固まりそうなほどなんだけど。
2017/10/04(水) 01:09:33.28ID:V7FXDajl0
なんでそんなに時間がかかるのかね
構文解析がめんどい→人間にも解析がめんどい
じゃないのかと...
2017/10/04(水) 08:03:39.24ID:gQVbv4s5d
Swiftの読みづらさは異常
無駄なwithout Cの追及により構文解析効率が悪化してんだろ
319デフォルトの名無しさん (ササクッテロリ Spe1-3BEe)
垢版 |
2017/10/04(水) 11:34:12.56ID:1tM3PWaBp
swift+reactive なんて読めたもんじゃない
KVO地獄
320デフォルトの名無しさん (ササクッテロリ Spe1-3BEe)
垢版 |
2017/10/04(水) 20:08:07.75ID:1tM3PWaBp
型なんか自分で書くのに・・
2017/10/04(水) 20:44:54.90ID:4gPaqbyr0
Javaも var 変数名 = ... になるんだな
http://openjdk.java.net/jeps/286
2017/10/05(木) 04:38:12.06ID:YxTMxa+70
varとか書くんだったらもはやvarも無くしちまえよまったく...
2017/10/05(木) 06:52:05.59ID:wZesW7ps0
初期化と再代入ははっきり分けられないと面倒じゃん
2017/10/05(木) 07:00:49.34ID:jqjwBcqVd
型推論とかいうおバカプログラマ向け仕様をやめればvarなどという間抜けなキーワードはいらないわけで
2017/10/05(木) 07:06:39.63ID:6+40pkdb0
いまだにJEPどまりで予定すら立ってないというのが
326デフォルトの名無しさん (ワッチョイ 95b3-2iPL)
垢版 |
2017/10/05(木) 08:17:25.93ID:00L9WeAc0
99% varでいいよ、面倒くさいから
変わらないobjective-cの安定感がたまらん
超開発早いし
327デフォルトの名無しさん (ササクッテロリ Sp75-2iPL)
垢版 |
2017/10/05(木) 08:23:57.77ID:4UOAx4bZp
新しいこと覚えるくらいならビジネスロジックを勉強するよ
言語だのリアクティブだの状態管理だの
フルスクリーンアプリじゃユーザーに全くメリットないし
業界に踊らされているだけ
328デフォルトの名無しさん (ワッチョイ 95b3-2iPL)
垢版 |
2017/10/05(木) 08:54:59.74ID:00L9WeAc0
しっかりobject志向で作れば読みやすいしnullはチェックすればいいだけ
swiftでif letやguard書くようにobjective-cで書けばいいじゃん
ビルド速いしobjective-cで何の不満もない
swiftでreactiveで状態管理でとか、Appleがやってない事を無理矢理・・開発難航させるだけ
2017/10/05(木) 20:07:42.36ID:6+40pkdb0
そのチェックが大変すぎるから問題になってるんだろうがああああ

全変数だぞ全変数
Javaのオブジェクト変数は全部NULLになりうるんだ
2017/10/05(木) 20:41:27.85ID:jcimiKk70
Javaだとこんなんでもアウトだしな
return a.getName().length();
2017/10/05(木) 21:45:45.83ID:Pl7oLNo/0
ObjCもプロパティアクセスはドット表記がモダンでnilアクセスで落ちるだろ
こんなんでアウトだ
return a.name.length;

まぁSwiftでもObjCの関数の渡ってきた変数は信用できずちょいちょい落ちるんだがな(ワロエン
2017/10/05(木) 22:32:47.67ID:DCONgPWB0
いや、落ちないよ。んなの、基本中の基本やん
2017/10/05(木) 23:03:37.57ID:W3Z8qYkCd
ただのプログラマのミスを言語のせいにする風潮
2017/10/05(木) 23:19:15.31ID:Pl7oLNo/0
>>333
ちょっと笑った
335デフォルトの名無しさん (ワッチョイ 95b3-2iPL)
垢版 |
2017/10/06(金) 00:42:47.95ID:/80lsBeB0
全変数なわけないだろカスwww
336デフォルトの名無しさん (ササクッテロリ Sp75-2iPL)
垢版 |
2017/10/06(金) 00:48:43.39ID:nNBQ8Jr7p
Objective-Cはやっぱり凄いよ
337デフォルトの名無しさん (ワッチョイ 95b3-2iPL)
垢版 |
2017/10/06(金) 00:51:42.72ID:/80lsBeB0
swiftのビルド時間がobjcの半分でもなったら使おうかな
型推論なんか時間の無駄
2017/10/06(金) 08:07:44.15ID:ELVXHTcrM
>>329
スレッド間競合でいつnil化されるか分かんね、ってケースか?

だったらスコープ内でローカルの強参照に放り込んでからnil判定挟めば自分のスレッドで当該スコープ内はしなないんじゃね
2017/10/06(金) 08:43:57.58ID:+D3ds82DF
>>336
それにはまったく同意だがスレチじゃね?
340デフォルトの名無しさん (ワッチョイ 7681-ktdh)
垢版 |
2017/10/06(金) 10:38:04.82ID:ulMDAM+Z0
型推論使うの止めようって言ったら、所詮中級の基地害プロマネが顔赤くしてブチキレた。
結局30人(サーバ、Android等含む)で3ヶ月掛かって作ったものは、ユーザテストで使い物にならなかった。
HumanInterfaceGuidelinesを知らないデザイナは、単なるお絵描き。
2017/10/06(金) 10:41:46.35ID:2sWAD4+90
使い物にならなかったのと型推論とどういう関係が?
2017/10/06(金) 13:45:29.26ID:5pSVr9SsM
論理的文書構成ができない>>340を部下に持つ中級プロマネかわいそう
2017/10/06(金) 17:03:08.49ID:V7ffa7dDM
というか、型推論使えとか使うなとか、そんな細かいことPMが言うってどんな状況だよ
プロジェクトマネジメントとなんの関係もないだろ
2017/10/06(金) 20:32:58.77ID:wgggGznB0
なんで型推論やめようと思ったのかが気になる
コンパイル重かったのか

へぼグラマーにありがちだが
自分がよくわかんない部分を取り除けばすべてよくなると思ったのか
345デフォルトの名無しさん (スップ Sdda-jJU0)
垢版 |
2017/10/06(金) 20:40:20.94ID:oDN7+iQQd
型推論をやめようと言ったら切れられた
↑やめたい理由もキレられた理由も理解不能だが言っていることはわかる
何故かユーザテストで使い物にならなかった
↑ん?型推論と関係なくね…
Guideline知らないデザインナーはただのお絵かき
↑もはや何の話をしているのかわからん!


ここから推測するにPMにキレられた理由は>>340がアホだからだな
2017/10/06(金) 20:56:02.17ID:wgggGznB0
30人も使って3ヵ月って規模からしたら超タイトだな
完成品にこぎつけてる時点ですげーよ

携帯ってこんなもんなん?
347デフォルトの名無しさん (スップ Sdda-jJU0)
垢版 |
2017/10/06(金) 21:05:57.43ID:oDN7+iQQd
サーバー側含めてだろ
今時三ヶ月なんて普通だろ
2017/10/06(金) 21:14:23.42ID:wgggGznB0
ひぇぇ

枯れた業務系で仕事してるが
知らんあいだに世の中どんなことなってんだ
2017/10/06(金) 22:00:52.00ID:FHIJEXWg0
マネジメント力にかかってる
人数増やすほどなおさらその人数を100%に近い稼働率で動かすのは至難の技
2017/10/06(金) 22:43:50.15ID:nuKuH1wb0
アプリのプログラミングは1人1画面って感じなんかね
サーバーサイドにマンパワー使ったかな
351デフォルトの名無しさん (ワッチョイ 95b3-2iPL)
垢版 |
2017/10/06(金) 23:05:40.33ID:/80lsBeB0
swift使わなきゃまともなプログラム作れないなんて
所詮アマチュア
swiftのビルドの遅さは一体何?アホ遅いよな?
352デフォルトの名無しさん (ササクッテロリ Sp75-2iPL)
垢版 |
2017/10/06(金) 23:14:40.00ID:nNBQ8Jr7p
COBOLとかまだ現役
5000ステップくらいならコンパイル3秒www
2017/10/06(金) 23:18:22.67ID:nuKuH1wb0
まぁ、高性能のハードを用意しろってことだろ
2017/10/07(土) 08:12:23.79ID:s04ZU/0N0
Swiftは趣味で日曜プログラマが使うにはいいと思う
355デフォルトの名無しさん (ワッチョイ 95b3-2iPL)
垢版 |
2017/10/07(土) 09:55:31.45ID:U1rvDJEV0
>>349
中小は自信過剰なアホジジイがマネジメントしてるケースが多いから困るよ
356デフォルトの名無しさん (ササクッテロリ Sp75-2iPL)
垢版 |
2017/10/07(土) 09:57:26.82ID:QJpqp28Yp
swift6あたりで可読性も兼ねて型推論は無くなるだろう。
型推論など甘え。
2017/10/07(土) 10:08:58.99ID:KI1hLy1h0
クラス変数やメンバ変数は型が明示されてた方が可読性は高いと思うけど、一時的な変数をいちいち型宣言するのは面倒いよ
2017/10/07(土) 15:12:59.61ID:8/GtqdSW0
「人月の神話」まだ読んでないの
2017/10/08(日) 22:52:13.41ID:uIqMxfC90
めったにないけど型がついてないと
呼び出し先のメソッドの戻り値の型がこっそり変わって
それに引きずられて呼び出し出し先のメソッドが変わったんじゃないかとか
心配事が増えることがある
2017/10/08(日) 23:23:26.45ID:ZE2/usTz0
let someName = String(format:"User %02d", userId)
みたいなのは明らかにStringってすぐわかるから書かないようにしてるけど、
ややこしいメソッド呼んで戻り値の型がぱっとわかんなそうなやつは書くようにしてるな。
let analyzedDataMap = analyzer.analyze()
みたいなやつね。
2017/10/08(日) 23:59:22.72ID:93IJP3PA0
そういうケースは
なるべく右辺に型を書くようにしてる
2017/10/09(月) 07:53:43.84ID:UhJ6XiQR0
後でコード読む時に、型を調べようと思ったら関数まで飛んで返り値を調べないといけないからな
文字列みたいに明らかなのはいいけど、オレオレ関数の返り値を代入する場合はなるべく型宣言した方がいいかもね
2017/10/09(月) 09:41:59.82ID:4WiIHmfQ0
メソッドチェーンや引数に関数呼び出しを直に置くのもしないの?
同様に戻り値の型が明示されないまま流れていくけど
2017/10/09(月) 09:47:58.22ID:c41RoAYB0
Swiftの分際で関数型とか調子乗ってるな
2017/10/09(月) 11:12:47.14ID:7FcxW73H0
>>363
そういうのはもうひとつのイディオムみたいなもんだから、わざわざ変数宣言しているものに比べてなんとなく流れだけわかってればいい場合が多いと思うけど。
2017/10/09(月) 12:14:03.34ID:4WiIHmfQ0
>>365
変数宣言って「わざわざ」なんて言う程のことかな
同じ参照を複数回使うために変数に置くとかよくあることだと思うんだけど
こういうの前者は良くて後者のrは型明示すべきなの?

f(t.load(), kNameIndex)

let r = t.load()
f(r, r.index("name"))
2017/10/09(月) 12:23:32.41ID:CFyXNixj0
まぁ、関数の引数は補完機能を使えば型も参照できるからそこまで拘る必要ないかなと思うけどな
引数には分かりやすいラベル使って欲しいとは思うけど
2017/10/09(月) 17:30:23.07ID:7FcxW73H0
>>366
文脈によるんじゃないの。メソッドで何回も使われる重要な変数が型ついてなかったら読みづらいし、局所的に2回ぐらいしか使われない変数だったらどうでもいいと思う。
型推論なんか無価値だと主張しているつもりはないので。
C++のmapのiteratorとかちゃんと型を書きたくないしさ。
2017/10/09(月) 22:47:50.52ID:KdSq7WwE0
可読性の向上のために型推論があるのに、コンパイラが推論可能だからといって、人間が推論することが難しい書き方はするべきではない
2017/10/09(月) 22:50:13.97ID:c41RoAYB0
ほんそれ
そもそも型推論なんていらん
むしろ考慮することが増えて面倒
371デフォルトの名無しさん (ワッチョイ 76a5-jJU0)
垢版 |
2017/10/09(月) 23:44:00.27ID:ZTYTzUU70
型推論とかいう作ったやつの自己満機能
2017/10/10(火) 00:19:08.18ID:9k+Hkwgm0
型推論いいじゃん
コーディング量が減るし

let age: Int = calculateAge(fromBirthday: birthday)
let age = calculateAge(fromBirthday: birthday)

let name: String = nameField.text.stringByTrimmingCharactersInSet(.whitespaceCharacterSet())
let name = nameField.text.stringByTrimmingCharactersInSet(.whitespaceCharacterSet())

紛らわしい変数名とか使わなければ型は自明なケースも多い
2017/10/10(火) 00:21:14.49ID:jM5sd94/0
ところでSwiftとかKotlinとか似たような言語がポコポコつくって何がしたいん
2017/10/10(火) 00:32:06.42ID:GlWhehwV0
微妙にちょっとずつ違うから
最終的にいいとこどりして
C#がさらに最強になる
2017/10/10(火) 09:50:24.55ID:vhDO2SQEM
>>372
ageをひっそり月対応にしといてやんよ
2017/10/10(火) 17:19:55.70ID:GZ/dICxTM
まぁ型推論が有効なのってideとの連携前提なとこあるよね。
結局この型どうやんねんって時にフォーカス合わせれば型がわかるから使えてるところはある
377デフォルトの名無しさん (アウアウウー Sa39-bcWR)
垢版 |
2017/10/10(火) 18:47:00.23ID:eiklXckra
いろんなソース読んでるとBaseViewみたいなの用意してストーリーボード上でそれをNavigationControllerより前に置いてるんだけどどういう風にどういう意味でなんの利点があってやってるんですか?
2017/10/10(火) 20:20:45.88ID:9k+Hkwgm0
そのBaseViewがソースでどういう使われ方してるのかみてみないとなんともいえんな
2017/10/10(火) 21:16:36.06ID:okVS1LPg0
>>377
なかなかナゾな書き方だなw

BaseViewController -> NavigationController
NavigationController -> ViewController.view.subviews[0](=BaseView)
StoryboardにはViewを単独では配置することはできない、また、単にViewControllerではなくNavigationControllerってるとこからは前者か?と推測

前者のは利点はわからんなあ、逆にあんまりNavigationControllerが必要でなくViewController -> ViewController -> ViewController ... な遷移でも書けるがNavigationController中で遷移させた方が利点があることはあるのはある
後者は(なんか別に配置して)目一杯でなくなった場合にとかだろうと推測
2017/10/10(火) 21:36:28.71ID:mEVSBT7T0
>>372
375でも書かれてるけど、ageって必ず年ってわけじゃないからageに関しての例は適切じゃないと思った。
FloatなのかIntなのか事前に知っておきたい場合ってのも結構多いし。
2017/10/10(火) 22:02:25.69ID:odAtKqMJd
>>376
そう
何に推論されてるのか推論するのが面倒なときがある
結局単にIDE依存度を高める機能
2017/10/10(火) 22:02:55.52ID:9k+Hkwgm0
年齢の型が浮動小数点数なわけないだろ常識的に考えて
2017/10/10(火) 22:59:28.27ID:jM5sd94/0
誕生日からの経過月数や日数、ひいては時間や秒まで浮動小数点の年齢として表現することにする実装もありうる
常識的っていう曖昧な前提はプログラミングではいらない
384デフォルトの名無しさん (ワッチョイ 91e9-bcWR)
垢版 |
2017/10/10(火) 23:06:02.00ID:M6M4qQyh0
>>379
御察しの通り前者です
どういう風に使っているかと言われると、表示に関係者した共通処理?プログレスの表示などのをまとめてるっぽいんだけど画面数が多くなるとまとめたほうがいいのかな
2017/10/10(火) 23:28:14.76ID:9k+Hkwgm0
>>383
年齢に整数型以外を使うときは、typealiasするなり型を明示して、変数名もageにはしないわ常識的に
2017/10/10(火) 23:40:37.74ID:R4fGxZLA0
>>384
BaseViewControllerでググったらあった、複数。こんなん流行ってたのか
https://qiita.com/yimajo/items/8ef1850e1362bd3bf3d8
基本否定姿勢だけどちゃんとメリットも書いてある/理解してる(?)とても良い人の意見なんじゃね?w

俺にはそれでもメリットは何も感じないけどww
2017/10/11(水) 00:14:13.41ID:sKdl4TO60
>>380
事前に知って起きたい場合じゃなくて、事前に決めて起きたい場合じゃないの?
型推論があれば受け側の変数の型を宣言しておけば、同じ名前のメソッドを使い分けられるんじゃない?
2017/10/11(水) 06:53:33.72ID:5yuJhWQ70
>>385
つまり最初から型書いとけばこんな下らん議論はいらないということだ
IDEもあるのに型を書くくらいがめんどいやつはプログラマやめちまえばいいと思う
389デフォルトの名無しさん (ワッチョイ 95b3-Hg+h)
垢版 |
2017/10/11(水) 06:57:49.22ID:PHAOwVfO0
アプリ全体のviewControllerで行う処理とか後から追加するのが面倒だから、実装なしでもbaseViewController継承しておくのがプロ
390デフォルトの名無しさん (ワッチョイ 95b3-Hg+h)
垢版 |
2017/10/11(水) 06:58:56.69ID:PHAOwVfO0
アプリ全体のviewControllerで行う処理とか後から追加するのが面倒だから、実装なしでもbaseViewController継承しておくのがプロ
391デフォルトの名無しさん (ササクッテロラ Sp75-Hg+h)
垢版 |
2017/10/11(水) 07:31:38.26ID:3JYMgXlbp
Swiftのビルドの遅さと言ったらもう
2017/10/11(水) 08:57:59.33ID:xjGA/sOAd
大丈夫
モダンな言語を触ること自体が喜びの意識高めの方々にはまったく苦にならないから
2017/10/11(水) 10:29:22.28ID:wXVN7J6z0
型型抜かすんじやねぇ
2017/10/11(水) 11:10:15.04ID:nDtE4t5M0
>>387
書く側としたら事前に決めておきたい、だけど、読む側としたら事前に知っておきたいという感覚になるのかな、と。

あと、ライブラリを部分的に知ってるような場合に、どこで自分の知ってる型が出てくるかわかるだけでも全然読みやすさが違うとかはあるよ。
名前の付け方がよければそんなことないかもしれないが、そうでない場合、全部一個一個チェックしていかなきゃいけないわけだから。
2017/10/11(水) 11:51:10.61ID:wXVN7J6z0
ソースを追ってて型が明示されてないと分からなくなることってそんなあるか?
いちいち型が明示されててごちゃごちゃしてるよりすっきりしてる方が好みだけどなぁ
どうしても知りたければIDEの構文補完ですぐわかるし
コンストラクタとかは呼び出しそのものが型宣言みたいなもんやし冗長やろ

let query: NSMetadataQuery = NSMetadataQuery()
let query = NSMetadataQuery()

let fileManager: FileManager = FileManager.default
let fileManager = FileManager.default

as演算子を使う時も型は自明
let appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
let appDelegate = UIApplication.shared.delegate as! AppDelegate
2017/10/11(水) 13:24:55.20ID:nDtE4t5M0
>>395
こういう見て明らかなのは良いと思うよ
2017/10/11(水) 13:37:02.94ID:7Q5j4kqZM
見て明らか(哲学)
2017/10/11(水) 13:51:10.92ID:wXVN7J6z0
逐一型宣言してたら、後でクラス名とか変えたくなった時に影響範囲も増えるからな
2017/10/11(水) 21:53:46.50ID:iHsyneUfM
>>398
それこそideがやるべきだろ。
400デフォルトの名無しさん (ワッチョイ 99b3-gv9Q)
垢版 |
2017/10/12(木) 00:23:01.42ID:a0zf13g60
おまえらみたいな意識高い系のおかげでかいしゃは消える
なぜならユーザーメリットなく
401デフォルトの名無しさん (ササクッテロラ Sp45-gv9Q)
垢版 |
2017/10/12(木) 12:03:55.01ID:VXMT0qDgp
常に意識高く(=コスト高く)
皆が意識高いわけじゃないし

もうIDEが プログラム推論 で全部書けよ
2017/10/12(木) 12:07:58.00ID:1BqA9hpy0
そのうちAIがプログラムを書くようになる日もくるだろう
俺たちの仕事は要件定義だけ
そのうち、要件定義すらAIがやりはじめるだろう
もう俺達の仕事はなくなるね
2017/10/12(木) 16:00:26.14ID:YopnhZe80
そのうち=50年後とかか?
2017/10/12(木) 22:11:20.91ID:RMeyvXX8d
IDEがないと書けたもんじゃないモダンな言語
実に感慨深い
2017/10/12(木) 22:59:47.41ID:VJJSsqbY0
IDEが無くても書けるモダンな言語って一杯あるもんな
406デフォルトの名無しさん (スプッッ Sd33-YqbF)
垢版 |
2017/10/12(木) 23:00:07.52ID:1gJjE3UDd
効率悪いやろ
407デフォルトの名無しさん (ササクッテロラ Sp45-gv9Q)
垢版 |
2017/10/13(金) 08:36:59.82ID:R6m8UyoBp
とにかくビルド遅い、Mac全体遅くなる
swift死んで欲しい
2017/10/13(金) 09:01:30.41ID:I4FuvleI0
Swiftを使わないという選択肢もあるんやで
409デフォルトの名無しさん (スップ Sd73-YqbF)
垢版 |
2017/10/13(金) 09:08:03.03ID:XIdp19imd
ない
2017/10/13(金) 12:52:09.23ID:1ukxQn240
昔はObjective-Cという言語があってだな。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況