フリープログラマー日記

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

2018-01-01から1年間の記事一覧

第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, …

第18回 AndroidのTextViewでサイズ指定の肝!

iOSでUILabelを使ったことは、AndroidではTextViewでやるといいようです。 氏名の入力で使うことになる予定ですが、テキストの入力は、iOSではUITextView、Androidでは、EditTextというクラスを使うようです。この辺りはなるべくシンプルにいきたいです。で…

第17回 iPhoneとiPadで似た表示を作る。(UILabel使用)

ソースコードをすべてアップしてませんが、前回までで、メインメニューと4つの画面の行き来ができるようになっています。私のブログを読んでくださっている方の中には、プログラム精通者も入れば、初心者の方もいると思いますし、若い方も、ご年配の方もい…

第16回 AndroidではRunnableで画面遷移

前回は、swiftでクロージャを使って画面遷移をしましたが、javaでは、Runnableを使うと同じようなことができます。前回の繰り返しですが、1.呼び出される側に、ランナブル変数を置く。 2.呼び出し側から、このランナブルに「どこに制御が移るか」を教え…

第15回 swift、ハンドラーとかクロージャとか

よくわからないんです。 初心者にとっては絶壁に登るような感覚ですよね?なので、初心者目線で、説明して見ます。クロージャというのは、「次にここから実行してね。」と伝える手段という見方でいいと思います。 あるエリアがタップされたら、次は(同じク…