!extend::vvvvv
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう
関連スレ
プログラミング言語Swift Part4
http://egg.2ch.net/test/read.cgi/mac/1484763495/
[SDK]iPhoneアプリ開発初心者質問箱49[touch][iPad]
https://egg.5ch.net/test/read.cgi/mac/1538778915/
Xcode part14
http://egg.2ch.net/test/read.cgi/mac/1476190499/
Swiftアンチスレ part1
http://mevius.2ch.net/test/read.cgi/tech/1458491343/
前スレ
Swift part11
https://mevius.5ch.net/test/read.cgi/tech/1498640309/
スレ立て時は1行目に「!extend::vvvvv」
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
Swift part12
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ af5b-F79V)
2018/10/29(月) 22:08:16.87ID:gm+ugNlu086デフォルトの名無しさん (ワッチョイ 6502-Prtq)
2019/04/19(金) 08:43:13.18ID:TxABBsFf0 OS側の問題。
そんなに長くコンパイルするなら、スリープ機能等はオフにする。
そんなに長くコンパイルするなら、スリープ機能等はオフにする。
87デフォルトの名無しさん (ワッチョイ a22d-Ea22)
2019/04/19(金) 08:56:47.58ID:PuGTBcz20 >>86
ありがとうございます、スリープはオフにしてるのですが、もしかして画面がオフになるのもダメなのかしら
ありがとうございます、スリープはオフにしてるのですが、もしかして画面がオフになるのもダメなのかしら
88デフォルトの名無しさん (ワッチョイ 928c-K2JC)
2019/04/19(金) 08:59:11.63ID:UPSvai8f0 それは無関係でしょう。
何回試行したの?
何回試行したの?
89デフォルトの名無しさん (ワッチョイ a22d-Ea22)
2019/04/19(金) 09:05:41.49ID:PuGTBcz20 一回の処理が30秒ほど、これを3000回ほど繰り返しています。
今朝確認したら止まっていたので、朝の用意してる時にもう一度だけ試しましたが、30分後にかくにんしたら(画面はオフ)またも止まっていました
今朝確認したら止まっていたので、朝の用意してる時にもう一度だけ試しましたが、30分後にかくにんしたら(画面はオフ)またも止まっていました
90デフォルトの名無しさん (ワッチョイ a22d-Ea22)
2019/04/19(金) 09:10:34.80ID:PuGTBcz20 要所にはprintでコンソールに進捗が分かるようにコメント出してるのですが、どうもasync内の処理に入ってから止まってるような感じです。
ヒントだけでも良いのですが>< 心が折れそう
ヒントだけでも良いのですが>< 心が折れそう
91デフォルトの名無しさん (ワッチョイ 928c-K2JC)
2019/04/19(金) 09:23:02.08ID:UPSvai8f0 30分程度で確認に入れるなら画面オフにしないで試してみたら?
切り分けて潰していかないと
切り分けて潰していかないと
92デフォルトの名無しさん (ワッチョイ 928c-K2JC)
2019/04/19(金) 09:24:27.59ID:UPSvai8f0 あ。
ビルド中に止まってるって話じゃないのか。
すみません。
ビルド中に止まってるって話じゃないのか。
すみません。
93デフォルトの名無しさん (ワッチョイ 928c-K2JC)
2019/04/19(金) 09:25:43.46ID:UPSvai8f0 メモリーリークは?
9490 (ブーイモ MMd5-Ea22)
2019/04/19(金) 09:42:40.71ID:EB/Z3yYvM95デフォルトの名無しさん (ワッチョイ 928c-K2JC)
2019/04/19(金) 09:58:09.31ID:UPSvai8f0 僕はiOS畑でmacOSでの開発経験は無いけど、クロージャー内での相互強参照には注意してます。
廃棄される事のないオブジェクトのプロパティをクロージャーにキャプチャしてないでしょうか。
廃棄される事のないオブジェクトのプロパティをクロージャーにキャプチャしてないでしょうか。
9690 (ワッチョイ b12c-Ea22)
2019/04/19(金) 10:56:31.11ID:Tu1+OCMX09790 (ワッチョイ b12c-Ea22)
2019/04/19(金) 10:58:45.87ID:Tu1+OCMX0 書いていて気付きましたが
メインスレッドとサブスレッドでクラス外の変数にそれぞれアクセスしています、順番は合っていますが(前後しません)ループ終わりに初期化したりするほうが良いですか?代入から参照を繰り返しています
メインスレッドとサブスレッドでクラス外の変数にそれぞれアクセスしています、順番は合っていますが(前後しません)ループ終わりに初期化したりするほうが良いですか?代入から参照を繰り返しています
98デフォルトの名無しさん (ワッチョイ 928c-K2JC)
2019/04/19(金) 12:09:11.98ID:UPSvai8f0 クロージャーは実行時点での変数などを内部に保持しますので、他のオブジェクトのプロパティやメソッドをクロージャーで実行する際には相互強参照を起こさない様、注意が必要です。
ライフサイクル内で破棄される事のないviewなどは要注意ですね。
変数宣言時というより、クロージャーにキャプチャリストを置いて対処します。
{[weak self] in self?.anyMethod()}
といった書式です。
ライフサイクル内で破棄される事のないviewなどは要注意ですね。
変数宣言時というより、クロージャーにキャプチャリストを置いて対処します。
{[weak self] in self?.anyMethod()}
といった書式です。
99デフォルトの名無しさん (ワッチョイ 3207-4Lt8)
2019/04/21(日) 01:30:21.36ID:iFSUeFmu0 構造体のプロパティに全部初期値を与えると、メンバーワイズイニシャライザが使えなくなるのはなぜなの?
イニシャライザ書くのめんどくさいよ。
くそ仕様なのでは?
イニシャライザ書くのめんどくさいよ。
くそ仕様なのでは?
100デフォルトの名無しさん (ワッチョイ 3207-4Lt8)
2019/04/21(日) 01:32:58.67ID:iFSUeFmu0 >>99 は defaultイニシャライザが定義されてるから、メンバーワイズイニシャライザが消えたってことはわかるけど、なぜこの仕様なのかがわからない。
メンバーワイズイニシャライザを使えなくするのが疑問。
メンバーワイズイニシャライザを使えなくするのが疑問。
101デフォルトの名無しさん (ワッチョイ 8101-+1ox)
2019/04/21(日) 11:36:42.98ID:b6xf/OvP0 xcodeに関する話題はどこか別スレ有りますか?
部品の探し方とかコードとの関連付けとか、ハウツーサイト見ても何の為にやってるのか理解できなくて。
部品の探し方とかコードとの関連付けとか、ハウツーサイト見ても何の為にやってるのか理解できなくて。
102デフォルトの名無しさん (ワッチョイ 52bd-JNgg)
2019/04/21(日) 12:05:11.84ID:pCSfgkO00103デフォルトの名無しさん (ワッチョイ d27c-/6WQ)
2019/04/21(日) 13:08:05.97ID:uR3YTCI+0 Xcode part15
http://egg.5ch.net/test/read.cgi/mac/1552999170/
http://egg.5ch.net/test/read.cgi/mac/1552999170/
104デフォルトの名無しさん (ワッチョイ 8101-+1ox)
2019/04/22(月) 02:31:27.06ID:SWJDNqxR0 新MC板だったか,有り難う。
105デフォルトの名無しさん (ワッチョイ b12c-Ea22)
2019/04/23(火) 14:13:15.43ID:FQZTVnj/0 >>85 の質問をさせてもらったのですが、ご報告です。
Macのスリープ"しない"
ディスプレイのスリープ"しない"
スクリーンセーバ"開始しない"
この状態で実行すると止まらずに動いております。
問題の切り分けを進めたいのですがヒントが有れば教えて欲しいです。
作っているAppでdispatch.queue.mainを使用してラベルやインジケータを更新しているのですが、Macがスリープや画面オフ、またはスクリーンセーバ開始で問題は出るのでしょうか?
Macのスリープ"しない"
ディスプレイのスリープ"しない"
スクリーンセーバ"開始しない"
この状態で実行すると止まらずに動いております。
問題の切り分けを進めたいのですがヒントが有れば教えて欲しいです。
作っているAppでdispatch.queue.mainを使用してラベルやインジケータを更新しているのですが、Macがスリープや画面オフ、またはスクリーンセーバ開始で問題は出るのでしょうか?
106デフォルトの名無しさん (ワッチョイ 928c-w5dY)
2019/04/23(火) 14:29:52.93ID:eM8URmwI0 処理中にメモリー使用量が増えていくとの書き込みも有りましたが、Instrumentsを起動してAllocationsで#Persistentを確かめた感じでしょうか。
107デフォルトの名無しさん (ワッチョイ b12c-Ea22)
2019/04/23(火) 14:37:24.94ID:FQZTVnj/0 >>106
ありがとうございます、確認してみます
ありがとうございます、確認してみます
108デフォルトの名無しさん (ワッチョイ b12c-Ea22)
2019/04/23(火) 14:46:02.85ID:FQZTVnj/0 こ、こんなツール知らなかった!
なんか便利そうな感じです。
見た感じループ1週でチョビチョビ増えてる感じですね、データベースへの書き込み処理と読み込みかな?
問題はない感じっぽいです、このツールすごい
なんか便利そうな感じです。
見た感じループ1週でチョビチョビ増えてる感じですね、データベースへの書き込み処理と読み込みかな?
問題はない感じっぽいです、このツールすごい
109デフォルトの名無しさん (ワッチョイ b12c-Ea22)
2019/04/23(火) 15:07:02.13ID:FQZTVnj/0 連投申し訳ありません。
ループの過程でsleep()を入れてるのですが、なんとなくこれが原因っぽいような気がしてきました
ループの過程でsleep()を入れてるのですが、なんとなくこれが原因っぽいような気がしてきました
110デフォルトの名無しさん (ワッチョイ 928c-w5dY)
2019/04/23(火) 15:12:05.68ID:eM8URmwI0 #Persis tentは廃棄されずに存続しているオブジェクトです。もしここが増え続けている様ですと、強参照が疑われます。
また、iOSではラベルの更新などにはプロパティオブザーバーを使う事がよくあります。
プロパティ毎に、値が更新された時に実行する処理を指定できます。
var score = 0 { didSet { scoreLavel.text = “Score : \(score)”} }
といった感じです。
macOSでも同様かは解りませんが...
ご参考まで、
また、iOSではラベルの更新などにはプロパティオブザーバーを使う事がよくあります。
プロパティ毎に、値が更新された時に実行する処理を指定できます。
var score = 0 { didSet { scoreLavel.text = “Score : \(score)”} }
といった感じです。
macOSでも同様かは解りませんが...
ご参考まで、
111デフォルトの名無しさん (ワッチョイ f666-dCbv)
2019/04/23(火) 19:09:15.92ID:zVNwrrWL0 ディスプレイのスリープやスクリーンセーバでプロセスがサスペンド(?)するのはちょっと考えられないけど(もしかしてもしかしてmacOSのナンかあるかもだけど)、
https://developer.apple.com/library/archive/qa/qa1340/_index.html
Listing 2 Preventing sleep using I/O Kit in Mac OS X 10.6 Snow Leopard
で、プログラムからMacのスリープやディスプレイのスリープを抑制(というかしないように)ができるよ
アクティビティモニタで状態は確認できる。「非スリープ」の項目。出てない場合はリストタイトルを右クリックで
IOPMAssertionCreateWithName で はい
IOPMAssertionRelease で いいえ
「はい」のプロセスがひとつでもあればスリープしない
https://developer.apple.com/library/archive/qa/qa1340/_index.html
Listing 2 Preventing sleep using I/O Kit in Mac OS X 10.6 Snow Leopard
で、プログラムからMacのスリープやディスプレイのスリープを抑制(というかしないように)ができるよ
アクティビティモニタで状態は確認できる。「非スリープ」の項目。出てない場合はリストタイトルを右クリックで
IOPMAssertionCreateWithName で はい
IOPMAssertionRelease で いいえ
「はい」のプロセスがひとつでもあればスリープしない
112デフォルトの名無しさん (ワッチョイ a22d-Ea22)
2019/04/23(火) 21:16:14.40ID:d6R+4rUw0113デフォルトの名無しさん (ワッチョイ b12c-Ea22)
2019/04/24(水) 13:25:01.92ID:mjBvBaH40 IOPMAssertionCreateWithNameを使ってNoIdleSleepを設定することで回避できたようです。
よく考えてみるとシステムがスリープになるとプロセスが止まるのは当たり前のことなのですね、気づく事が出来なくて恥ずかしいですが今後の糧とします。
皆さん本当にありがとうございました。
よく考えてみるとシステムがスリープになるとプロセスが止まるのは当たり前のことなのですね、気づく事が出来なくて恥ずかしいですが今後の糧とします。
皆さん本当にありがとうございました。
114デフォルトの名無しさん (ワッチョイ ff02-14KV)
2019/05/28(火) 01:28:52.91ID:CHSOWKq90 ここでiOSのswift playgrounds の質問して良いですか??
115デフォルトの名無しさん (ワッチョイ 5f2d-0vwM)
2019/05/28(火) 08:51:43.63ID:fThzCcyx0 >>114
それは、Xcodeスレのほうが良いかもね
それは、Xcodeスレのほうが良いかもね
116デフォルトの名無しさん (ワンミングク MMbf-9Ps2)
2019/05/28(火) 09:39:07.03ID:twHuJAd4M117デフォルトの名無しさん (ワッチョイ df8c-kH1c)
2019/05/28(火) 10:38:14.63ID:DVQuNbO80 SPgのアプリの操作や、教育シナリオについての質問だと対応したもんか困るな。
Swiftのゴードに関する質問なら全く問題無い。
Swiftのゴードに関する質問なら全く問題無い。
118デフォルトの名無しさん (ワッチョイ df8c-kH1c)
2019/05/28(火) 10:39:01.20ID:DVQuNbO80 ゴードって何??
コードね。
コードね。
119デフォルトの名無しさん (ワッチョイ a7b3-XCiU)
2019/05/28(火) 12:01:34.71ID:w4zZ1fDo0 ありがとうございます!
プログラミング初心者で、初めてiPadでプログラムに触れて、すごい楽しんでいます。
ただ、今、同じ処理をするのに、エラーが出るコードとエラーが出ないちょっと違うコードの違いがわからなくて、悩んでいます。
分かっている人にはしょうもない質問かもしれないですが、自宅に帰ったら書かせていただきます!
プログラミング初心者で、初めてiPadでプログラムに触れて、すごい楽しんでいます。
ただ、今、同じ処理をするのに、エラーが出るコードとエラーが出ないちょっと違うコードの違いがわからなくて、悩んでいます。
分かっている人にはしょうもない質問かもしれないですが、自宅に帰ったら書かせていただきます!
120デフォルトの名無しさん (ワッチョイ ff02-14KV)
2019/05/28(火) 19:39:17.29ID:CHSOWKq90 すみません教えてください
swift playgrounds コードを学ぼう2 の 「ステージを作るー道をつなぐ」をやっています。
島の中の座標(2.2)にブロックを2個置きたいのですが、下のパターンAはエラーが出るのに、パターンBはエラーが出ません。
やろうとしてることは同じだと思うんですが、なんでパターンBは上手くいくんでしょうか??
//パターンA
//ブロックの再宣言が無効ですのエラーが出る
let block = Block()
world.place(block, atColumn: 2, row: 2)
let block = Block()
world.place(block, atColumn: 2, row: 2)
//パターンB
//問題なく2個のブロックが置かれる
for i in 1 ... 2 {
let block = Block()
world.place(block, atColumn: 2, row: 2)
}
よろしくお願いします。
swift playgrounds コードを学ぼう2 の 「ステージを作るー道をつなぐ」をやっています。
島の中の座標(2.2)にブロックを2個置きたいのですが、下のパターンAはエラーが出るのに、パターンBはエラーが出ません。
やろうとしてることは同じだと思うんですが、なんでパターンBは上手くいくんでしょうか??
//パターンA
//ブロックの再宣言が無効ですのエラーが出る
let block = Block()
world.place(block, atColumn: 2, row: 2)
let block = Block()
world.place(block, atColumn: 2, row: 2)
//パターンB
//問題なく2個のブロックが置かれる
for i in 1 ... 2 {
let block = Block()
world.place(block, atColumn: 2, row: 2)
}
よろしくお願いします。
121デフォルトの名無しさん (ワッチョイ df8c-kH1c)
2019/05/28(火) 19:50:39.55ID:DVQuNbO80 ループ内での定数宣言は各回、改めて行われているので問題無いが、エラーが起きるコードでは同じ定数が複数回宣言されているのでエラーとなる。
なお、ループ定数のiもループ内で使用されていないので、本来はワイルドカードを使用するのが望ましい。
for _ in 1...2 {
....
}
なお、ループ定数のiもループ内で使用されていないので、本来はワイルドカードを使用するのが望ましい。
for _ in 1...2 {
....
}
122デフォルトの名無しさん (ワッチョイ df8c-kH1c)
2019/05/28(火) 19:54:00.30ID:DVQuNbO80 これなら通るでしょう。
let block = Block()
world.place(block, atColumn: 2, row: 2)
world.place(block, atColumn: 2, row: 2)
let block = Block()
world.place(block, atColumn: 2, row: 2)
world.place(block, atColumn: 2, row: 2)
123デフォルトの名無しさん (ワッチョイ ff02-14KV)
2019/05/28(火) 20:17:26.95ID:CHSOWKq90 >>121
ありがとうございます!
ループ内の定数宣言について、はっきりと理解していないのですが、今後勉強します。
ループ定数iの件も今理解できないですが、ちょっと勉強します。
>>122
これも試したのですが、一個目のブロックは置かれるのですが、それが消えてから二個目のブロックが置かれてしまって結局1個しかブロックが置かれませんでした。
それも意味がわかりませんでした。。。
ちなみにこれは上手く行きました。当たり前ですが。。。
let block1 = Block()
world.place(block1, atColumn: 2, row: 2)
let block2 = Block()
world.place(block2, atColumn: 2, row: 2)
ありがとうございます!
ループ内の定数宣言について、はっきりと理解していないのですが、今後勉強します。
ループ定数iの件も今理解できないですが、ちょっと勉強します。
>>122
これも試したのですが、一個目のブロックは置かれるのですが、それが消えてから二個目のブロックが置かれてしまって結局1個しかブロックが置かれませんでした。
それも意味がわかりませんでした。。。
ちなみにこれは上手く行きました。当たり前ですが。。。
let block1 = Block()
world.place(block1, atColumn: 2, row: 2)
let block2 = Block()
world.place(block2, atColumn: 2, row: 2)
124デフォルトの名無しさん (ワッチョイ df8c-kH1c)
2019/05/28(火) 20:21:32.57ID:DVQuNbO80125デフォルトの名無しさん (ワッチョイ ff02-14KV)
2019/05/28(火) 20:35:44.65ID:CHSOWKq90126デフォルトの名無しさん (ワッチョイ df8c-kH1c)
2019/05/28(火) 20:38:11.70ID:DVQuNbO80 ループ内で宣言された定数blokは、一回ループすると破棄されてる。
で、次のループでまた「新たな定数として」宣言されてる。
for _ in 1...2 {
let block = Block() //定数blockが宣言され、Blockが格納された
world.place(block, atColumn: 2, row: 2) //worldがplace()を実行
} //定数blockは破棄→次のループへ
で、次のループでまた「新たな定数として」宣言されてる。
for _ in 1...2 {
let block = Block() //定数blockが宣言され、Blockが格納された
world.place(block, atColumn: 2, row: 2) //worldがplace()を実行
} //定数blockは破棄→次のループへ
127デフォルトの名無しさん (ワッチョイ ff02-14KV)
2019/05/28(火) 21:03:01.13ID:CHSOWKq90 >>126
ありがとうございます!
理解できました!
それってローカルスコープって言うものと関係があるのでしょうか?
ローカルスコープ内で宣言された定数がそのループ内で下まで行って、
それで宣言されたのは消えるけど、ブロックは残る。
でまたループの最初で新たに宣言されて、同じ名前のブロックだけど、1個目のブロックとは違う2個目のブロックが作られるってことですね!
ありがとうございます!
ありがとうございます!
理解できました!
それってローカルスコープって言うものと関係があるのでしょうか?
ローカルスコープ内で宣言された定数がそのループ内で下まで行って、
それで宣言されたのは消えるけど、ブロックは残る。
でまたループの最初で新たに宣言されて、同じ名前のブロックだけど、1個目のブロックとは違う2個目のブロックが作られるってことですね!
ありがとうございます!
128デフォルトの名無しさん (ワッチョイ ff02-14KV)
2019/05/28(火) 21:06:57.09ID:CHSOWKq90 親切にありがとうございます。
プログラム面白いです!
プログラム面白いです!
129デフォルトの名無しさん (ワッチョイ df8c-kH1c)
2019/05/28(火) 21:26:26.57ID:DVQuNbO80130デフォルトの名無しさん (ワッチョイ df8c-kH1c)
2019/05/28(火) 21:29:38.21ID:DVQuNbO80 知識と実験結果が繋がるとワクワクするよね。
131デフォルトの名無しさん (ワッチョイ df8c-kH1c)
2019/05/28(火) 22:06:12.86ID:DVQuNbO80 >>122のコードだと、スコープ内だから定数blockも、そこに格納されてるブロックも「そのまま」残ってる。
で、先ず一回めのplace()でブロックがcolumn 2, row2に置かれる。
そして、その同じブロックがまたplace()で使われて、同じ位置に置き直されてる。
だから一旦消える。
で、先ず一回めのplace()でブロックがcolumn 2, row2に置かれる。
そして、その同じブロックがまたplace()で使われて、同じ位置に置き直されてる。
だから一旦消える。
132デフォルトの名無しさん (ワッチョイ ff02-14KV)
2019/05/29(水) 01:28:22.62ID:n5wrmHwb0133デフォルトの名無しさん (ワッチョイ 2a01-3Kiq)
2019/06/04(火) 04:57:26.99ID:Rl5HHtb60 楽しみですね。来ましたね。
134デフォルトの名無しさん (アウアウエー Sae2-n0I8)
2019/06/05(水) 09:09:04.10ID:iH0AsPg1a SwiftUIってどうなのよ
135デフォルトの名無しさん (ワッチョイ 6a8c-WHxb)
2019/06/05(水) 09:37:29.67ID:bn8XLE5n0 癖になっちゃうみたいよ
136デフォルトの名無しさん (ワッチョイ 6a8c-WHxb)
2019/06/05(水) 11:12:50.80ID:bn8XLE5n0 手持ちのiOS向けコードをmacOS向けにビルドしてみてる。
拍子抜けするほど簡単。
iOSはスレッドの選択に寛容なのだと分かった^_^
iOSで引っ掛からなかったミスをmacOS向けだとキッチリ指摘される。
お陰でiOS向けの動作も改善できた(^^;;
拍子抜けするほど簡単。
iOSはスレッドの選択に寛容なのだと分かった^_^
iOSで引っ掛からなかったミスをmacOS向けだとキッチリ指摘される。
お陰でiOS向けの動作も改善できた(^^;;
137デフォルトの名無しさん (ワッチョイ 6a8c-WHxb)
2019/06/05(水) 21:52:24.16ID:bn8XLE5n013892 (ワッチョイ 5384-nFRp)
2019/06/07(金) 13:11:36.86ID:RiGAEFOd0 わりと簡単な2画面使うアプリのソース無料でかどこかに落ちてないですかね。
一通り言語の勉強は終わったので、マニュアルの課題よりちょっと上の画像扱うアプリのソースとか見てみたい
一通り言語の勉強は終わったので、マニュアルの課題よりちょっと上の画像扱うアプリのソースとか見てみたい
139デフォルトの名無しさん (ワッチョイ 038c-FZF1)
2019/06/07(金) 13:26:18.96ID:jIZKE2jv0 >>138
チュートリアルとしてはこれとか。
https://www.hackingwithswift.com/100/16
サンプルソースコードへのリンクも記事の中に有るよ。
ただし、よくあるstoryboardのセグエを使うやり方じゃ無いけど。
チュートリアルとしてはこれとか。
https://www.hackingwithswift.com/100/16
サンプルソースコードへのリンクも記事の中に有るよ。
ただし、よくあるstoryboardのセグエを使うやり方じゃ無いけど。
141デフォルトの名無しさん (ワッチョイ 038c-FZF1)
2019/06/08(土) 13:59:27.79ID:wruTQcwg0 SwiftUIはDateFormatterのロケールに未対応だね
142デフォルトの名無しさん (ワッチョイ 5a00-LWbF)
2019/06/18(火) 02:19:23.63ID:tbAp2v6F0 すみません、教えてください。
今とあるWebサイトに載っている
プログラムの意味を一つずつ調べていまして、
let okHandler: () -> Void = { handler in
if let textField = alertController.textFields?.first {
completionHandler(textField.text)
} else {
completionHandler("")
}
}
の構文がどうなっているのか、全然分かりません。
{ handler in ・・・ からは、
引数も戻り値も無いクロージャーと思っていますが、
正しいでしょうか?
あと、
let okHandler: () -> Void = { handler in
って、
let okHandler = { handler in
ではだめでしょうか?
今とあるWebサイトに載っている
プログラムの意味を一つずつ調べていまして、
let okHandler: () -> Void = { handler in
if let textField = alertController.textFields?.first {
completionHandler(textField.text)
} else {
completionHandler("")
}
}
の構文がどうなっているのか、全然分かりません。
{ handler in ・・・ からは、
引数も戻り値も無いクロージャーと思っていますが、
正しいでしょうか?
あと、
let okHandler: () -> Void = { handler in
って、
let okHandler = { handler in
ではだめでしょうか?
143デフォルトの名無しさん (ワッチョイ 8b01-p7Vn)
2019/06/18(火) 07:44:59.45ID:RRPGT4du0 >>142
分解して理解する
let 変数名: 型 = 値
【型】
クロージャ型の場合さらに分解して
(引数型宣言) -> 戻り値型
「引数無し」は「空のタプルを1つ」と同等として扱われる
また、Void型は空のタプル型のエイリアス
Void = ()
以下は全て同じ型「() -> ()」になる
let okHandler: () -> Void = {}
let a: (Void) -> Void = okHandler
let b: () -> () = okHandler
let c: (()) -> (()) = okHandler
let d: ((())) -> ((())) = okHandler
【値】
クロージャの場合
{引数定義 in 本体}
今回の方の場合、handlerは空のタプル型の引数となる
クロージャ型を省略するとhandlerの型が不明になりコンパイル出来ない
handlerの型を明示するか「引数定義 in」を省略すれば可能
let okHandler = { (handler:Void) in }
let okHandler = { }
分解して理解する
let 変数名: 型 = 値
【型】
クロージャ型の場合さらに分解して
(引数型宣言) -> 戻り値型
「引数無し」は「空のタプルを1つ」と同等として扱われる
また、Void型は空のタプル型のエイリアス
Void = ()
以下は全て同じ型「() -> ()」になる
let okHandler: () -> Void = {}
let a: (Void) -> Void = okHandler
let b: () -> () = okHandler
let c: (()) -> (()) = okHandler
let d: ((())) -> ((())) = okHandler
【値】
クロージャの場合
{引数定義 in 本体}
今回の方の場合、handlerは空のタプル型の引数となる
クロージャ型を省略するとhandlerの型が不明になりコンパイル出来ない
handlerの型を明示するか「引数定義 in」を省略すれば可能
let okHandler = { (handler:Void) in }
let okHandler = { }
144デフォルトの名無しさん (ワッチョイ 9a8c-6ILD)
2019/06/18(火) 09:19:46.79ID:MqxFux0r0 引数をとらないクロージャー() -> Voidとしているのに{ handler in ....}というは通らないのでは。
クロージャー内でもhandlerは使われていないし。
クロージャー内でもhandlerは使われていないし。
145デフォルトの名無しさん (ワッチョイ 8b01-GEyX)
2019/06/18(火) 10:13:56.93ID:RRPGT4du0 すまん、Swift4からは引数型宣言とタプル型の区別が厳密化した影響で通らなくなってるな
https://github.com/apple/swift-evolution/blob/master/proposals/0110-distingish-single-tuple-arg.md
>>143を訂正
>「引数無し」は「空のタプルを1つ」と同等として扱われる
これはSwift3までで、Swift4以降は間違い
空のタプルを1つなら以下になる
let okHandler: (()) -> Void = { handler in }
let a: (Void) -> Void = okHandler
let b: (()) -> () = okHandler
let c: (()) -> (()) = okHandler
let d: ((())) -> ((())) = okHandler
let okHandler2 = { (handler:()) in }
引数無しなら引数は書けない
let okHandler3 = { }
さらにSwift4→Swift5でも型の文字列化が変更されているようで
print(type(of: { (handler:()) in } ))
が
Swift4では () -> ()
Swift5では (()) -> ()
と表示される
https://github.com/apple/swift-evolution/blob/master/proposals/0110-distingish-single-tuple-arg.md
>>143を訂正
>「引数無し」は「空のタプルを1つ」と同等として扱われる
これはSwift3までで、Swift4以降は間違い
空のタプルを1つなら以下になる
let okHandler: (()) -> Void = { handler in }
let a: (Void) -> Void = okHandler
let b: (()) -> () = okHandler
let c: (()) -> (()) = okHandler
let d: ((())) -> ((())) = okHandler
let okHandler2 = { (handler:()) in }
引数無しなら引数は書けない
let okHandler3 = { }
さらにSwift4→Swift5でも型の文字列化が変更されているようで
print(type(of: { (handler:()) in } ))
が
Swift4では () -> ()
Swift5では (()) -> ()
と表示される
146デフォルトの名無しさん (ワッチョイ 9a8c-6ILD)
2019/06/18(火) 10:37:29.39ID:MqxFux0r0 >{ handler in ・・・ からは、
>引数も戻り値も無いクロージャーと思っていますが、
>正しいでしょうか?
正しい。但し、クロージャー内の’handler in’は現在は通らない。
>let okHandler: () -> Void = { handler in
>って、
>let okHandler = { handler in
>ではだめでしょうか?
そもそも、
let okHandler: () -> Void = { handler in
では現在は通らない。
let okHandler: () -> Void = { () in
let okHandler: () -> Void = {
let okHandler = {
let okHandler = { () in
これらは通る。
という事ですね。
>引数も戻り値も無いクロージャーと思っていますが、
>正しいでしょうか?
正しい。但し、クロージャー内の’handler in’は現在は通らない。
>let okHandler: () -> Void = { handler in
>って、
>let okHandler = { handler in
>ではだめでしょうか?
そもそも、
let okHandler: () -> Void = { handler in
では現在は通らない。
let okHandler: () -> Void = { () in
let okHandler: () -> Void = {
let okHandler = {
let okHandler = { () in
これらは通る。
という事ですね。
147デフォルトの名無しさん (JP 0H7f-LWbF)
2019/06/18(火) 18:47:59.54ID:/CgxXLZnH >>142 です。
>>143、>>144
ありがとうございます!ほんと凄いです。
お伝えしていませんでしたが、swift3でした。
失礼しました。
油断したらまた何だったっけ?ってなりそうですが、
「タプル」「空のタプル」で検索したりして、
かなり分かりました。
let okHandler = {
でいいような・・・。
ところで、分かってきて、また疑問が湧いてきました。
// 引数と戻り値のないクロージャ
let closure = { () -> Void in print("クロージャテスト") }
closure()
let closure: () -> Void = { print("クロージャテスト") }
closure()
って、同じ意味だと思いますが、
なぜ、
let closure: () -> Void = { print("クロージャテスト") }
の形(今回質問させていただきましたクロージャー型={}の形)
なのか分かりますでしょうか?
好みの問題でしょうか?
let closure: () -> Void;
closure = { print("クロージャテスト") }
closure()
なら、なんとなく分かりますが。
>>143、>>144
ありがとうございます!ほんと凄いです。
お伝えしていませんでしたが、swift3でした。
失礼しました。
油断したらまた何だったっけ?ってなりそうですが、
「タプル」「空のタプル」で検索したりして、
かなり分かりました。
let okHandler = {
でいいような・・・。
ところで、分かってきて、また疑問が湧いてきました。
// 引数と戻り値のないクロージャ
let closure = { () -> Void in print("クロージャテスト") }
closure()
let closure: () -> Void = { print("クロージャテスト") }
closure()
って、同じ意味だと思いますが、
なぜ、
let closure: () -> Void = { print("クロージャテスト") }
の形(今回質問させていただきましたクロージャー型={}の形)
なのか分かりますでしょうか?
好みの問題でしょうか?
let closure: () -> Void;
closure = { print("クロージャテスト") }
closure()
なら、なんとなく分かりますが。
148デフォルトの名無しさん (ワッチョイ 9a8c-6ILD)
2019/06/18(火) 19:12:11.36ID:MqxFux0r0 変数、定数の宣言は、型が推定できるか、または明示されていることが絶対条件ですので、値を指定しない限り型を明示する必要があります。
ですので、基本的には
let 定数名: 型
var 変数名: 型
となる訳です。
この場合、値は後で代入する事になります。
定数名 = 値
変数名 = 値
この二段階を一度に行う事が可能で、
let 定数名: 型 = 値
var 変数名: 型 = 値
という書式になります。
この時、していされた「値」によって、定数(変数)の型を推定する事ができるので、型宣言を省略可能になります。
let 定数名 = 値
var 変数名: = 値
どの書き方をするかは基本的に自由です。
読み易さやメンテナンスのし易さ、その他の事情に応じて自分で判断します。
ですので、基本的には
let 定数名: 型
var 変数名: 型
となる訳です。
この場合、値は後で代入する事になります。
定数名 = 値
変数名 = 値
この二段階を一度に行う事が可能で、
let 定数名: 型 = 値
var 変数名: 型 = 値
という書式になります。
この時、していされた「値」によって、定数(変数)の型を推定する事ができるので、型宣言を省略可能になります。
let 定数名 = 値
var 変数名: = 値
どの書き方をするかは基本的に自由です。
読み易さやメンテナンスのし易さ、その他の事情に応じて自分で判断します。
149デフォルトの名無しさん (ワッチョイ 9a8c-6ILD)
2019/06/18(火) 19:14:33.84ID:MqxFux0r0 修正
誤)var 変数名: = 値
正)var 変数名 = 値
誤)var 変数名: = 値
正)var 変数名 = 値
150デフォルトの名無しさん (ワッチョイ 9a8c-6ILD)
2019/06/18(火) 19:22:36.30ID:MqxFux0r0 ざっくり書きますが、
クロージャー型宣言部分での引数、戻り値の記述、クロージャー(値)部分でのそれも、基本的には両方とも「書く」のです。
が、どちらかで書かれていれば他方は推定可能なので省略でき、更に両方で書かれていない場合は「引数も戻り値も無いのだな」と推定可能なので書式として通る
そんな感じです。
クロージャー型宣言部分での引数、戻り値の記述、クロージャー(値)部分でのそれも、基本的には両方とも「書く」のです。
が、どちらかで書かれていれば他方は推定可能なので省略でき、更に両方で書かれていない場合は「引数も戻り値も無いのだな」と推定可能なので書式として通る
そんな感じです。
151デフォルトの名無しさん (ワッチョイ 9a8c-6ILD)
2019/06/18(火) 19:32:52.12ID:MqxFux0r0 ちなみに
let 定数名: 型 = 値
var 変数名: 型 = 値
この書き方には、型を「確実に」指定出来るというメリットが有ります。
値が「1.0」である時、この値を割り当てられた変数の型は
float でしょうか、それともdouble でしょうか。
どの型であるかでプログラムに不都合が起きる場合、推定に任せるわけにはいきません。
この様な場合には上記の型を明示する書式が採用されます。
let 定数名: 型 = 値
var 変数名: 型 = 値
この書き方には、型を「確実に」指定出来るというメリットが有ります。
値が「1.0」である時、この値を割り当てられた変数の型は
float でしょうか、それともdouble でしょうか。
どの型であるかでプログラムに不都合が起きる場合、推定に任せるわけにはいきません。
この様な場合には上記の型を明示する書式が採用されます。
152デフォルトの名無しさん (ワッチョイ 8b01-GEyX)
2019/06/18(火) 20:04:30.62ID:RRPGT4du0 >>147
戻り値まで指定しているその2例だと好みの問題かな
戻り値を指定しない場合は
最後のステートメント次第で型が変わる可能性がある
func print2(_ s:String) -> Int {
print(s)
return 10
}
let closure1:() -> Void = { print2("クロージャテスト") }
let closure2 = { print2("クロージャテスト") }
closure1は () -> Void
closure2は () -> Int
---
個人的にはトレーリングクロージャで使えるクロージャ側で指定する方が好み
func arr2<T>(_ f:()->T) -> [T] { return [f(),f()] }
let a = arr2 { () -> UInt8 in 10*2 }
print(type(of: a ), a) // Array<UInt8> [20, 20]
戻り値まで指定しているその2例だと好みの問題かな
戻り値を指定しない場合は
最後のステートメント次第で型が変わる可能性がある
func print2(_ s:String) -> Int {
print(s)
return 10
}
let closure1:() -> Void = { print2("クロージャテスト") }
let closure2 = { print2("クロージャテスト") }
closure1は () -> Void
closure2は () -> Int
---
個人的にはトレーリングクロージャで使えるクロージャ側で指定する方が好み
func arr2<T>(_ f:()->T) -> [T] { return [f(),f()] }
let a = arr2 { () -> UInt8 in 10*2 }
print(type(of: a ), a) // Array<UInt8> [20, 20]
153デフォルトの名無しさん (ワッチョイ 5a00-LWbF)
2019/06/19(水) 01:46:47.34ID:J6hmOODE0154デフォルトの名無しさん (ドコグロ MMf7-8cV5)
2019/06/19(水) 18:16:34.43ID:2JA7n6eeM Swift Playgroundsどぅょ
155デフォルトの名無しさん (JP 0H8d-F2Fz)
2019/06/20(木) 10:32:09.63ID:39UUBS39H Swiftを始めてみたいんだけどMacが必要らしくてMac miniかMacbookを買おうと思ってる(高い)
こどおじだからMac miniでいいかな?
実際に開発してる者の意見を聞きたい(開発上の利便性とか速度とか)
こどおじだからMac miniでいいかな?
実際に開発してる者の意見を聞きたい(開発上の利便性とか速度とか)
156デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/20(木) 10:49:25.55ID:po6GQ3Kk0 プロジェクトの規模による。
始めてみる程度ならMacBook Airでも問題無い。
サブディスプレイの有無で作業効率がかなり違うので、出来れば用意したほうが良いと思う。
実機テストにも使えるし、サブディスプレイにもなるのでiPadはお勧め。
iPadは、サブディスプレイ接続しなくても資料の表示にはかなり役立つ。
MacとiPadは相互にコピペ出来るし、その他の連携も良い。
始めてみる程度ならMacBook Airでも問題無い。
サブディスプレイの有無で作業効率がかなり違うので、出来れば用意したほうが良いと思う。
実機テストにも使えるし、サブディスプレイにもなるのでiPadはお勧め。
iPadは、サブディスプレイ接続しなくても資料の表示にはかなり役立つ。
MacとiPadは相互にコピペ出来るし、その他の連携も良い。
157デフォルトの名無しさん (JP 0H8d-F2Fz)
2019/06/20(木) 11:49:37.55ID:39UUBS39H >>156
ありがとう!
ありがとう!
158デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/20(木) 16:23:44.57ID:po6GQ3Kk0 プログラミングの学習を始める時は機材もそうだけど教材も重要。
実際に打ち込んで結果を確認しての繰り返しなんで、「次に何をやるか」のネタが尽きない事が大事。
英語にアレルギーが無ければ、↓のサイトがお勧め。
https://www.hackingwithswift.com/100/
Swiftの基礎から、そこそこ自分で組める見通しが立つ程度まで100日間のコースが組まれてる。
最新の環境に更新されているし、ソースコードを含めて全て無料。
100日間、ネタが尽きない。
実際に打ち込んで結果を確認しての繰り返しなんで、「次に何をやるか」のネタが尽きない事が大事。
英語にアレルギーが無ければ、↓のサイトがお勧め。
https://www.hackingwithswift.com/100/
Swiftの基礎から、そこそこ自分で組める見通しが立つ程度まで100日間のコースが組まれてる。
最新の環境に更新されているし、ソースコードを含めて全て無料。
100日間、ネタが尽きない。
159デフォルトの名無しさん (ワッチョイ 911a-Lx5V)
2019/06/20(木) 20:21:20.75ID:z8jzk4Ul0160デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/20(木) 20:39:38.74ID:po6GQ3Kk0 日本語だと、なるべく新しい本を買うのがお勧めかな...
ネットの情報は新旧錯綜してるし、当のAppleも日本語のガイドや入門コースは更新が送れてる(^^;;
Appleの入門コース、内容は凄く良いんだけどね。無料だし。
ネットの情報は新旧錯綜してるし、当のAppleも日本語のガイドや入門コースは更新が送れてる(^^;;
Appleの入門コース、内容は凄く良いんだけどね。無料だし。
161デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/20(木) 20:42:51.91ID:po6GQ3Kk0 Xcode10、Swift4以上で。
162デフォルトの名無しさん (ワッチョイ f101-F2Fz)
2019/06/20(木) 21:42:28.43ID:JwmP4tXt0163デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/20(木) 21:48:41.43ID:po6GQ3Kk0 技術系の本は出てくる用語が限られてるし、下手くそな文章は別にして、大抵よく整ってるから意外と読めちゃうよね。
164デフォルトの名無しさん (ワッチョイ 4910-aVs3)
2019/06/20(木) 21:57:05.54ID:j+92GpxU0 英語できないとかプログラムこの先やっていく上で致命的すぎるだろ
165デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/20(木) 22:08:45.14ID:po6GQ3Kk0 まあ、まずは取っ掛かる事だわな。
続けてりゃ、後から色々ついてくるもんだし。
続けてりゃ、後から色々ついてくるもんだし。
166デフォルトの名無しさん (ワッチョイ 4b2d-br4T)
2019/06/20(木) 22:41:08.00ID:1p12e0x80 ある程度知ってるものについて英語の文献を読むのならまだしも、知らないものについてゼロから学習するのは辛いものがあるからな
167デフォルトの名無しさん (ワッチョイ 51b3-d73b)
2019/06/21(金) 11:59:27.29ID:2EyQTK6I0 >>154
クソおもろいで!
クソおもろいで!
168デフォルトの名無しさん (ワッチョイ f101-ZQmt)
2019/06/21(金) 19:19:55.86ID:edwbENE20169デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/21(金) 19:30:28.62ID:x2Q7O92u0 macOSやiOSには辞書が標準でインストールされてるし、わからない単語はその場で確認出来るしね。
全くの初学なら基本的な型や制御文、UI部品の幾つかについては日本語のテキストで学んで用語をある程度頭に入れたら、英語のテキストに取り組むと良いかもね。
いかんせん、日本語の書籍のサンプルコードは断片的でつまらないし、応用も効きにくいんだよなぁ...
ほんと、Appleの入門コース日本語版は早くアップデートすべきだと思うよ。
全くの初学なら基本的な型や制御文、UI部品の幾つかについては日本語のテキストで学んで用語をある程度頭に入れたら、英語のテキストに取り組むと良いかもね。
いかんせん、日本語の書籍のサンプルコードは断片的でつまらないし、応用も効きにくいんだよなぁ...
ほんと、Appleの入門コース日本語版は早くアップデートすべきだと思うよ。
170デフォルトの名無しさん (アウアウエー Sa23-udt/)
2019/06/22(土) 21:25:36.03ID:sInofEzLa171デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/22(土) 21:31:00.60ID:dZAW+YMM0 そりゃそうだろ。
172デフォルトの名無しさん (ワッチョイ d9dd-XdMg)
2019/06/22(土) 22:01:15.23ID:wZKOjh5O0 とりあえず「わかっている」ようなので安心したw
173デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/22(土) 22:19:44.53ID:dZAW+YMM0 「iOSアプリをmacOSで使える様になる」「統合される」なんて言う連中が未だに居るからね。
「iPadでmacOSアプリ使える様にしろ」とかさ。
あり得ないっつーの。
「iPadでmacOSアプリ使える様にしろ」とかさ。
あり得ないっつーの。
174デフォルトの名無しさん (ワッチョイ f101-br4T)
2019/06/22(土) 23:04:03.22ID:EOmKKZcH0 >>173
Windowsで出来ているんだから、Appleでもできるだろ。
Windowsで出来ているんだから、Appleでもできるだろ。
175デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/22(土) 23:06:31.47ID:dZAW+YMM0 >>174
あれはやらかしちまったって言うんだよ。
あれはやらかしちまったって言うんだよ。
176デフォルトの名無しさん (ワッチョイ 4101-F+0y)
2019/06/23(日) 02:32:49.79ID:YXbv/ovK0 Macアプリ開発への呼び水だろうな。簡単にMacアプリ作れるじゃんと思わせといてちゃんとしたアプリを作ろうと思うとどっぷりAppKitに浸かっていく流れ。
177デフォルトの名無しさん (ワッチョイ 09ad-0kke)
2019/06/23(日) 08:59:37.11ID:7n7bL/oO0 だってMacアプリ少なすぎて
おまえらがiOSアプリしか作らないのがあかん
おまえらがiOSアプリしか作らないのがあかん
178デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/23(日) 09:34:34.59ID:eEkgfOF60 少なすぎるって事は無いだろ。
catalystの狙いはmacOSアプリを増やすというより、両環境向けのアプリを増やす事で連携を高める事だろ。
catalystの狙いはmacOSアプリを増やすというより、両環境向けのアプリを増やす事で連携を高める事だろ。
179デフォルトの名無しさん (ワッチョイ 51ad-n3rI)
2019/06/23(日) 10:40:39.16ID:0ZLQVu140 だってmacOSよりiOS乗ってる機械の方が圧倒的に多いしな
180デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/23(日) 11:57:38.42ID:eEkgfOF60 iOS機器はネット端末のイメージが強いから、アプリもネットサービスを利用する感覚でダウンロードされやすい。
開発者にとってはそこが魅力。
開発者にとってはそこが魅力。
181デフォルトの名無しさん (ササクッテロル Sp8d-LuMA)
2019/06/23(日) 18:27:39.50ID:5aOx2AkLp 概念としては何度も提唱されていたMVC(モデル-ビュー-コントロール)って
プログラム実体とUIと接続部に最初から分けて実装すれば変更と移植が楽になる。
ってのを実際にやったのがジョブズが90年代にやってたNeXTで
MacOSXはそれをAppleに持って来たもの。
で、システム、アプリの基本的なつくりがそうなっているので
モバイル用にモジュール入れ替えてUIをモバイル用にした
『MacOSXの別バージョンがiOS』(だったりtvOSだったりetc)
だからプログラム実体とUIとコントロールは独立しているはずなので
「その機種用のUIに置き換えれば楽に移植できるし、システム的にそういうつくりのはずだよね?」ってのが基本。
前提が「(従来は全書き換え作り直しだけど)」って前書き入り。
Appleの前提は「違う環境じゃ違うUIや構成になるから変えなきゃね」で基礎システムできた上の主張やビジョンだけど
MSのWindows10はなんかそのあたり理解しないで「(うちは基礎システム環境ごとに全書き換えだから)全ての環境で同じものが動くようにします!」だから
さすがにありゃ「バカじゃねぇの?」としか…
プログラム実体とUIと接続部に最初から分けて実装すれば変更と移植が楽になる。
ってのを実際にやったのがジョブズが90年代にやってたNeXTで
MacOSXはそれをAppleに持って来たもの。
で、システム、アプリの基本的なつくりがそうなっているので
モバイル用にモジュール入れ替えてUIをモバイル用にした
『MacOSXの別バージョンがiOS』(だったりtvOSだったりetc)
だからプログラム実体とUIとコントロールは独立しているはずなので
「その機種用のUIに置き換えれば楽に移植できるし、システム的にそういうつくりのはずだよね?」ってのが基本。
前提が「(従来は全書き換え作り直しだけど)」って前書き入り。
Appleの前提は「違う環境じゃ違うUIや構成になるから変えなきゃね」で基礎システムできた上の主張やビジョンだけど
MSのWindows10はなんかそのあたり理解しないで「(うちは基礎システム環境ごとに全書き換えだから)全ての環境で同じものが動くようにします!」だから
さすがにありゃ「バカじゃねぇの?」としか…
182デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/23(日) 18:52:14.66ID:eEkgfOF60 つうか、色々なサイズ重量の機種に載せるOSにデスクトップ用とタブレット用とを抱き合わせ、しかもタブレット環境の筈なのにデスクトップUIのアプリ走らせ...
支離滅裂でしょ。
当然、持ち運び不能な機種で余計なタブレットモードは有るわ、タブレットモードとは別枠で複数のUIは有るわ、タブレットでマウス必須のアプリが走るわ
当然、タブレットに最適化したアプリは増えんわ
デスクトップ用のアプリは変な風にタブレットの影響受けるわ(ここはAppleもやらかしとる)
んで、OSがそんなワケワカメなもんだから、虻蜂取らずな2in1なんてハードは出てくる(まあ、出さざるを得ないわな)わ...
ソフト屋の筈なのに、UIの作り込みやUXガン無視ってなんなん?
お陰でiPadをPCと混同する様な要望やら、OSを統合しろやら、ユーザーの要望を聞かないのは横暴だの、とんだとばっちりを食わされてる訳で。
大丈夫だとは思いつつ、いつかAppleがポリシーを曲げやしないかとハラハラするこの数年だわ。
支離滅裂でしょ。
当然、持ち運び不能な機種で余計なタブレットモードは有るわ、タブレットモードとは別枠で複数のUIは有るわ、タブレットでマウス必須のアプリが走るわ
当然、タブレットに最適化したアプリは増えんわ
デスクトップ用のアプリは変な風にタブレットの影響受けるわ(ここはAppleもやらかしとる)
んで、OSがそんなワケワカメなもんだから、虻蜂取らずな2in1なんてハードは出てくる(まあ、出さざるを得ないわな)わ...
ソフト屋の筈なのに、UIの作り込みやUXガン無視ってなんなん?
お陰でiPadをPCと混同する様な要望やら、OSを統合しろやら、ユーザーの要望を聞かないのは横暴だの、とんだとばっちりを食わされてる訳で。
大丈夫だとは思いつつ、いつかAppleがポリシーを曲げやしないかとハラハラするこの数年だわ。
183デフォルトの名無しさん (ワッチョイ 1381-XdMg)
2019/06/23(日) 21:05:04.97ID:TZygGBwZ0 ブログにでも書いてろよ
184デフォルトの名無しさん (ワッチョイ 4101-F+0y)
2019/06/23(日) 21:19:13.22ID:YXbv/ovK0 俺Appleはハード屋だと思ってた。
185デフォルトの名無しさん (ワッチョイ 938c-1T9w)
2019/06/23(日) 21:22:04.14ID:eEkgfOF60 ハード屋の方がソフトウェアの事が解ってる、またはソフト作りにポリシー持って仕事してるという皮肉
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 ★2 [少考さん★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★3 [Hitzeschleier★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- 【画像】消えた美人女優 上原多香子さん(42)、沖縄で目撃される [牛丼★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- 【悲報】高市早苗、被災民に対し「自分の命くらいは自分で守ってくださいね」と切り捨てし大炎上 [339712612]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★1
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★2
- 【高市悲報】JA、発狂www「臨時に経費率を下げるので、どうかお米券を使ってください」 [246620176]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★2
- 高市早苗、森元総理の愛人だった [347751896]
