フリープログラマー日記

iOS,アンドロイド開発を気ままにしながら生きてるおじさんのブログです。

簡単に、スマートに!

SwiftUI ってよくできてます。 次のような図形ってよくありそうでしょ? で、これがSwiftで書いたプログラム。 import SwiftUI struct Room: View { // まず、ルームを定義。 // セル数を与えられて、正方形数個でできた矩形領域を生成。 let roomColumn: In…

SwiftUI、その後

SwiftUIをさわり始めてから、10日ほどでしょうか。 何を作ろうかと考えてたら、本棚にナンプレ本が・・・ なぜか、ノーマルより、4X4、5X5や合体ナンプレの好きな私は、これをテーマに組み始めてしまいました。 まずはメニュー画面。 正方形ナンプレ5…

第2章 SwiftUIの攻略 No.1

SwiftUIをターゲットに絞って、再出発。Apple Developer に swiftチュートリアルがあります。英語に悪戦苦闘しながら、なんとか食らい付いている次第です。不思議なことの一つ。 今まで、AppDelegate.swiftが始まりで(古いかも)、そこにはAppDelegateクラ…

ブログ再開します

諸般の事情によりブログ更新ができずにいましたが、再開することにしました。 今、ハマっているのは、「swiftUI」なるインターフェース。 初心にかえって、もう一度勉強してみたい。で、現在のところ。Xcode version 13.0swift の version ・・・ どこで見る…

第44回 プロパティとフィールド、よくわかりません。

実はハマりまくって、ブログ更新がおろそかに・・・そもそも、 Kotlinのクラスは、フィールドを持つことができません。(引用1) この一文が混乱の元になりました。じゃあ、フィールドって何?ってなると、Java解説本では クラスの内部の定義した変数をフィ…

第43回 KotlinでコンパイラWarningが出てくる

Kotlin でお遊びしてて気づいた。 いつも Warningが表示されています。 何も手を加えていない最初のプログラムをコンパイルした時の結果がこれ。 勝手に作っておいて、どうしてコンパイラエラーなんか出すの! と、言っててもしょうがないので、原因を探ると…

第42回 Kotlin に static ないって、知ってた?

Kotlinさわって、1週間。衝撃的だったのは、staticキーワードがないこと! まあ、static あるかないかで言語を分ければ、きっとないほうが多いのだろう。(調査する気はありません)ま、そこは、objectキーワードでなんとかしようかなと思ってますが、Kotli…

第41回 そろそろ、Kotlin?

ふと、手にした本が、Kotlin書だったために、ブログの更新も忘れて、読みふけってました。 Kotlin使って見たいけど、Kotlinの情報は少ない。 私にとってもメリットは、javaーswift の差よりも、kotlinーswiftの差の方が近いのではというその一点だけだったの…

第40回 昔はサブルーチン、今は継承です。

あるクラスの処理と同じことを別のクラスにも書くってよくありますよね。 2つや3つなら問題ないのでしょう。きっと。 昔、BASICをさわった人ならわかるでしょうが、GOSUBなんてキーワードがありました。今でも、クラス内の処理で関数を作って呼び出すのは…

第39回 ソフトウェアキーボード・・・出ないよ〜(iOS)

最初は大丈夫だったんです。 TextFieldにbecomeFirstResponderを当てておくと、キーボードがでてきて、よかったって済ませてました。ところが・・・先ほどより、左の状態に! 何もいじってないし、実機でやると問題ない。iPad Airなどのシミュレータもちゃん…

第38回 Arrayとforのいい関係(swift & java)

またまた、小ネタですが。swiftにもjavaにもとても便利で、似た仕組みがあったので報告です。まず、Arrayの宣言!swift版 import UIKit class Team { // static でアクセスできるように変更 // ランナーの所属に関する処理 static private var lastId: Int =…

第37回 swift、javaでMyColorファイルを作る

誰も教えない便利な技を自分で見つけて発信?ちょっと大げさでしょうか。 アプリ完成間際になって、色の調整とかってすることありますよね。あるいはサイズの調整とか、フォントいじったりとか。で、そんな時、どこだったかなと、あちこちのファイルを探しま…

第36回 java,swift の Enumって

Enum ってなくてもなんとかなりそうだけど、使うとプログラムが見易いですよね。さっそく、使っている場面を。swift版 LapTimeManager.swift(旧 Entrance.swift) class LapTimeManager: UIViewController { override func viewDidLoad() { // 設定 MySettin…

第35回 static でデータクラス

またまた、2日間くらい悩みまくりました。 私のアプリの場合、個人を "Runnerクラスのインスタンス"にして、それを束ねて、Arrayとする。この方向は間違っていないと思ってました。一般的なものでは、顧客クラスや社員クラスなどは同じような扱いなんだろう…

第34回 removeFromSuperview()でハマる

氏名入力をするために、スクロールビューのボタンから、氏名を入力する画面になっています。次に名前を登録のボタンを押したら、スクロールビューに名前が入り、全画面に戻るというのが私のシナリオですが・・・ なんということでしょう。 名前を登録ボタン…

第33回 氏名入力は、UITextFieldを使って入れればいいんだね。

ゲームでは、あんまり使わない、文字入力なんですが、これはもう本当にプロの人から見れば一笑に付されるようなことしていると思います。とりあえず、iPhoneでこんな画面を作りました。 左側のウインドウはスクロールビューで、氏名が入るとことなんですが、…

第32回 凡ミス。setPuddingとsetMerginsについて

第20回で、setMarginsが使えない。みたいなことを書きましたが、凡ミスでした。setPadding も setMargins もちゃんとあるのですが、どこか見つけられなかっただけと言うお粗末な結論です。しかし、これは、きちんと書き留めなければいけないと言うことで、書…

第31回 JAVA の ArrayLiist は便利!

アプリの画面が少しだけ前に進んでいます。 懸案だった横に長い氏名表示域を短くし、右側にエントリーされた選手名を表示するようにしました。 注目すべきは、タップした順に出場者が表示されている事で、なんとこれは自然になってしまったというjava の仕様…

第30回 static を使いまくる

何をしてるのか・・・ しかし、かっこいいから、時間を忘れてプログラムを改造中。元のプログラム。 if (entry) { setBackgroundColor(Color.argb(255,255,255,30)); } else { setBackgroundColor(Color.argb(255,200,200,200)); } こうなりました。 if (ent…

第29回 Static が便利だった!

今まであんまり使ったことのない static キーワード。何かカウントするときとか便利だよ〜とかって、それくらいの知識だけで。 でも、これって、インスタンス作らんでも使えるやんってことで、ビューを作る情報が散乱してるのを集めてみることにしました。 i…

第28回 アプリ設定ファイル

アプリ作る時って、やっぱりアプリ設定ファイルは作るんですよね? いい方法があるのかもしれないですが、私の場合は、settings クラスを作って、そこにアクセスして作っています。これが簡単な気がする。 なぜ、こんな話になっているとというと、とってもま…

第27回 Androidスクロールビューでタッチイベント

スクロールビューに名前の入ったビューアイテムが乗っています。スクロールビューのタッチイベントは嫌なので、このビューアイテムにタッチイベントをセットすることにしました。私は、アマプログラマーなので、やれることだけしかしません。できるだけ難し…

第26回 氏名の入出力!

ちょっと苦戦します。スクロールビューのタッチイベントの扱いって難しいですね。話は、少し前になりますが、Androidのスクロールビューは単一のレーアウトにまとめてのせるしか方法がなかったので、iOSとは同じ書き方ができませんでした。Androidの方にひと…

第25回 クラスの設計

この連載を読んでいただき、ありがとうございます。「大発見やー」と自画自賛していることを書いてみたいと思いますが、もしかしたらそんなのは当たり前のことなのかもしれません。プロのプログラマーは隠してるんじゃないの?みたいに思えてきますが。まず…

第24回 設計変更。クラスって難しい。

前回、Runner クラスが便利そうだと書きましたが、進めているうちに、Runner クラスを統括していく、Team クラスがあるといいなと思いつき(私は常に思いつきでプログラムする・・・)、Team クラスを書いてみました。Androidの記録方法、SharedPreferences…

第23回 クラスの設計は難しいです!

スクロールビューまで来て、はたと困りました。なぜなら、思いつくままにプログラムを書く癖があるので、後になってここはどうしようかと考えてしまうから。で、困った原因はというと、Runnerクラスってこのアプリの中心的存在なのに、いちいち消したり、フ…

第22回 Androidでスクロールビュー

ちょっと、イベントがあり、留守にしてました。 早速ですが、続きで、スクロールビューの設置。Android版で注意するべきことが一つあり、スクロールビューにのせることができるのは一つのオブジェクトになっているということです。なので、中に入れるレイア…

第21回 swiftでスクロールビュー

スクロールビューって、利用しない手はないのに、なかなかいいサンプルにお目にかかりません。ぜひぜひ参考にしてください。結構、教科書的に書けたように思います。プログラムは3つの部分に分かれます。 A:スクロールビューを呼び出すプログラム B:スク…

第20回 setMarginがどこかに消えた!

ボタンを貼り付けました。 と言っても、見た目だけです。 なぜかというと、以前はあったはずのsetMarginが出てこない。Viewを生成し、setMerginを使おうとしても出てこない・・・謎。 今回、左ボタンは、左側のマージンを指定、右ボタンは、右側のマージン指…

第19回 swift で UIButton!

swift で ボタンを作ってみます。 // UIButton 2個、「メニューに戻る」「奏者選択終了」 // ボタンのサイズは共通 let buttonSize: CGSize = CGSize(width: myWidth*0.4, height: myWidth*0.1) let cancelButtonPoint: CGPoint = CGPoint(x: myWidth*0.07, …