2023年12月1日金曜日

iOS UILabelの高さを可変にする実装方法を解説

どうも。どっことです。今回はiOSにおけるUILabelの高さを可変にする実装について解説していきます。

UILabelの高さを可変にする

Androidでいうところのandroid_height:"wrap_content"ですが、iOSではStoryBoard(AutoLayout)の都合上、Viewの高さを固定させなければならないことが非常に多いので、直感的にはできない印象です。ですが、できるんです。

そしてとても簡単で、numberOfLines0を設定し、sizeToFit()をコールするだけ。

label.numberOfLines = 0
label.text = "ここにはとても長いテキストが入ります。ここにはとても長いテキストが入ります。ここにはとても長いテキストが入ります。"
label.sizeToFit()

これだけで、UILabelの高さを可変にすることができます。

参考

2023年11月30日木曜日

Android DeprecatedされたPullToRefreshについて少しだけ紹介

???「PullToRefresh(PtR)、iOSと同じような見た目にしてほしいんだけど!」

私「AndroidにはSwipeRefreshLayoutというものがありまして...」

???「うるせえ!」

どうも。どっことです。deprecatedですが、iOSと同じような見た目のPtRがあります。SwipeRefreshLayoutが導入されたことにより、このライブラリはもうメンテナンスされていないようですが、用法用量を守って渋々いい感じに使いましょう。

参考

2023年11月28日火曜日

VBA ワークシートを参照する

ワークシートの参照パターンは大きく2パターン。Indexかワークシート名かで指定するパターン。

Index指定による参照

Application.Worksheets(Index)
Workbook.Worksheets(Index)

ワークシート名による参照

Application.Worksheets(“SheetName”)
Workbook.Worksheets(“SheetName”)

参考

2023年11月27日月曜日

Android Studio スペルチェック用辞書に単語を追加する手順を紹介

どうも。どっことです。今回はAndroid Studioで設定できるスペルチェック用辞書に単語を登録する/削除する方法を解説します。

Android Studioの単語帳を登録する/削除する

Android Studioにて、固有名詞にはニョロ線が出てウザイ結構気になりますよね。本当にスペルミスをしていたなら嬉しいことこの上ないのですが、日本語をローマ字表記させた場合ほとんどのものがニョロ線表示になると思います。Android Studioにはそういった固有名詞や単語を登録する機能がありますので、固有名詞は積極的に登録してニョロ線フラストレーションから解放されましょう。

手順

手順はそれぞれ以下の通りです。

単語の登録

  1. ニョロ線(警告線)が表示されている箇所で Alt + Enter
  2. Save ニョロ線単語 to top-level project dictionary を選択

単語の削除

  1. File > Settings > Editor > Spelling を選択。
  2. Accepted Wordsタブ内で削除対象の単語を選択し、- をクリック。

単語の共有

上記で登録した単語は.idea/dictionaries/で管理されています。ですので、このディレクトリを.gitignoreに含めないようにすることで、gitで登録された固有名詞を共有することができます。

まとめ

今回はAndroid Studioで設定できるスペルチェック用辞書に単語を登録する/削除する方法を解説します。わかっているのに表示されるニョロ線を表示されないようにすることで、本当に必要なものだけ表示されるようにして、スペルミス等に早めに気付けるようにしましょう。

参考

2023年10月18日水曜日

Android ライブラリの依存関係を確認する

ライブラリでトラブった時に、とりあえず依存関係を確認する。

./gradlew dependencies

参考

Android リップルエフェクト(Ripple Effect)を簡単に実装する方法を解説

どうも。どっことです。今回はリップルエフェクト(Ripple Effect)の実装方法について解説していきます。

リップルエフェクトを設定する

リップルエフェクトは、Viewにタップした時に水の波紋のように色が広がっていくような表示のことです。

これを設定しなくても動作に影響することはありませんが、ユーザにタッチしたことを知らせるには重要な効果だと思います。

実装方法

実装自体は簡単で、android:backgroundに以下を設定するだけです。

android:background="?attr/selectableItemBackground"

なお、すでに背景色を設定済みであれば、android:foregroundに設定することで同様に表示することができます。

android:foreground="?attr/selectableItemBackground"

まとめ

今回はリップルエフェクトの実装方法について解説しました。もはや一行追加するだけという非常に簡単な設定だけなので、解説というにはあまりにもネタが少ないかなと頭を悩ませています。

2023年10月17日火曜日

SQL テーブルにカラムを追加するALTER文を紹介

どうも。どっことです。今回は、既存のテーブルにカラムを追加するALTER文について紹介したいと思います。

テーブルにカラムを追加するALTER文

アプリのアップデートに伴い、もともと管理していたデータテーブルにさらに情報を追加したい、など、どうしてもテーブルにカラムの追加が必要になることがあると思います。そんな時は、ALTERを使って既存のテーブルにカラムを追加することができます。

サンプル①

まずはシンプルなALTER文です。

alter table テーブル名 add column カラム名 型;

テーブル名カラム名は必要な値を設定してください。

サンプル② オプション付き

またオプションとして、初期値を設定することができます。DEFAULT 節を使って初期値を指定します。

alter table テーブル名 add column カラム名 型 default 初期値;

例えば、userというテーブルにage カラムをデフォルト値を18として追加する場合は以下となります。

alter table user add column age int default 18;

まとめ

今回は、既存のテーブルにカラムを追加するALTER文について紹介しました。

新しいテーブルに引っ越したり、そもそも別テーブルで管理するなどの方法もありますが、今回はそんな中での一つの解決案として紹介させていただきました。

SQLはデータベースにおけるデータの永続化をする上で避けることができない技術だと思いますので、頭の片隅にいれておくだけでも開発効率やスピードに違いが出てくると思います。

参考

2023年10月16日月曜日

iOS 可変長引数を持つメソッドの定義

Javaと似てて、末尾に ... を追加するだけ。参照する際は、配列と同じように扱える。

func print(texts: String...) {
    // 配列のように要素数を参照できる
    if texts.count == 0 {
       return
    }
    // 配列のように要素を参照できる
    print("first: \(texts[0])")
    for text in texts {
      print("element: \(text)")
    }
}

参考

2023年10月15日日曜日

iOS よくわからないエラー集「Undefined symbol:...」

ライブラリをアプリに組み込んでビルドしたら、以下のエラーが出力されたが、知ってしまえばなんてことはない。

Undefined symbol: _GULLogBasic
Undefined symbol: _OBJC_CLASS_$_***
Undefined symbol: _OBJC_CLASS_$_***
Undefined symbol: _OBJC_CLASS_$_***
Undefined symbol: _OBJC_CLASS_$_***

「それ実機でしかビルドできないのに、シミュレータを対象にビルドしているよ」というときに表示されるエラーなので、「シミュレータでも動作するライブラリを使う」か、それが無理なら「シミュレータをターゲットにビルドするときは、該当のライブラリを組み込まずに使う、という方針となる。

2023年10月14日土曜日

アジャイル開発 と スクラム開発 スクラムイベントついて解説

どうも。どっことです。今回は、アジャイル開発(アジャイル)とスクラム開発の違い、そしてスクラム開発におけるイベントについてします。

アジャイル

アジャイルとは「俊敏性の高いソフトウェア開発」のことを指します。

スクラム(スクラム開発)

そして、スクラムとは「俊敏性の高いソフトウェア開発」の手法のひとつです。つまりスクラム開発はアジャイルに分類される手法の一つとなります。

固定的かつ長期的なメンバーで開発が進行することを想定しています。それによりチームワークを高まり、結果として生産性の最大化やビジネス目標の達成を図ります。

スクラム開発ではプロダクトオーナー、開発者、スクラムマスターの役割があり、各役職はメンバーに割り当てられます。

スクラムイベントについて

スクラム開発には4つのプロセス(イベント)があります。

1.スプリントプランニング

スプリントの最初に実施するプロセスです。

プロダクトバックログ(プロジェクトで消化すべきタスクの一覧)から優先度の高いアイテムを抽出し、タスク化します。タスク化する対象は、メンバーで認識相違がないことをあらかじめ確認したうえで決まります。そうしてタスク化されたアイテムがそのスプリントで消化するバックログ(スプリントバックログ)となります。

2.デイリースクラム

平日の決まった時間(午前中、特に朝が一般的)に短い時間でのミーティングを実施し、進捗確認や要求変化の確認を行います。スクラムマスターが全員に「今日は何やりますか」と質問し、その回答を確認することだけが実施される。問題があれば、スクラムマスターは別途会議などを設定することで解決を促しますが、スクラムマスターは、その問題解決意思決定の責務を負います。

3.スプリントレビュー

スプリント後に実施します。開発されたソフトウェアのレビューを行い、必要に応じてバックログをアップデートします。製品の機能や品質が十分であると判断されるまでスプリントとスプリントレビューを繰り返されます。

4.スプリントレトロスペクティブ

いわゆる振り返りです。スプリントの最後に実施します。

「スプリントの成果」にフォーカスが宛てられるスプリントレビューに対して、スプリントレトロスペクティブは「スクラムチームの動き」などの、プロセスにフォーカスされる。例えば、以下の事項について議論されます。

  • 直近のスプリントについての評価
  • 良かった点や今後の課題
  • スプリントの中で課題を解決した事例
  • 次回以降のスプリントにおける改善点

補足

アジャイル開発にはスクラム以外にもエクストリーム・プログラミング(XP)やカンバンなどがあげられます。

まとめ

今回は、アジャイル開発(アジャイル)とスクラム開発の違い、そしてスクラム開発におけるイベントについて解説しました。

参考

移行予定

どうも。どっことです。 タイトルの通りですが、諸事情により GitHubPage に移行予定です。 https://mkt120.github.io/ この備忘録に記載の内容を転記しつつ、今後はこちらのページを更新していく予定です。