会津ラボ

Illustration of a bird flying.
  • アジャイル開発に入門する2020――今すぐ読みたい3冊を紹介

    アジャイル開発に入門する2020――今すぐ読みたい3冊を紹介

    PC を新調して今更 Minecraft を始めました、開発3年目くらいの吉原です。サーバー構築の記事(一つ前の記事参照)助かります!!! 俺はソロだが…… ブログぜんぜん書いてないから書けって言われたので書きました! これが所謂ブログ書けハラスメント通称ブロハラというものでしょうか……(これは冗談ですが、どうしたらもっとブログが活発になるかは考えた方がよいかもしれません)。 アジャイル開発 さて、皆さんは「アジャイル開発」を知っているでしょうか? 当たり前、という人もいれば、聞いたことはある、くらいの人もいるかと思います。 今年の3月に IPA からアジャイル開発版「情報システム・モデル取引・契約書」が出たり、アジャイルに関する日本語の書籍も多く出版されてきているように、日本においてもアジャイル開発は徐々に広まってきている、或いは広まるための土台は作られてきているのかなと感じています。 ですが、弊ラボでは正直なところ未だアジャイルという概念はあまり浸透していません。私も去年くらいまでは「アジャイルって何?」側の人でした。そのため、もしかしたらアジャイルについて全く知らない人や、誤解している人もいるかもしれません。そしてこれは推測に過ぎませんが、同じような状況にいる人も多いのではないかと思います。 私がアジャイル開発に興味を持ったのは、プロジェクトが思うように進まず、どうしたらソフトウェア開発・システム開発が「うまくいく」のか調べていたときでした。 最初は要件定義や設計など、上流工程のフェーズがしっかりできていないことが問題だと考えました。そのため、要件定義や設計に関する多くの書籍やブログ記事などを読みました。(余談ですが、私が特に興味を惹かれたのは「ドメイン駆動設計」でした。これについてもそのうち紹介できたらなと思います。)そのうちいくつかの本や記事は、「アジャイル」という単語に触れていました。これは一体なんなのだろうと思い、次第にアジャイルに関する書籍やブログ記事も読むようになりました。 これは正解でした。少なくとも、アジャイル開発に関する書籍やブログ記事を読むことは、私にとってとてもエキサイティングでした。勿論『人月の神話』や多くの人々によって語られているように、銀の弾丸はありません(少なくとも今のところあるとは思われません)。しかし、アジャイルには、これなら本当にソフトウェア開発・システム開発が「うまくいく」かもしれない、そう思わせてくれるものがありました。アジャイルは、それ自体もそうですが、大きな思考の転換を齎してくれたことが最大の魅力だったのかもしれません。 弊ラボでもアジャイルを「よりよい開発」に役立てて行きたい! そんな思いから、本や記事を読むだけでなく、実践に繋げていこうと考えています。 今回、去年〜今年にかけて出版されたアジャイル初心者向けの書籍を3冊ほど読んでみたので、社内への布教も兼ねて紹介してみようと思います。「アジャイルって本当に役に立つの?」という人も、或いは「アジャイルはじめました!」という人にもおすすめできる3冊になっていると思います! 『みんなでアジャイル――変化に対応できる顧客中心組織のつくりかた』(オライリー・ジャパン) アジャイルを、原則(なぜ)とプラクティス(どうやって)が互いに連携した「ムーブメント」として捉え、道を踏み外さぬように(或いは道を踏み外してもすぐに戻れるように)アジャイルの旅を手引きしてくれる入門書です。 本書ではまず「顧客から始める」「早期から頻繁にコラボレーション(協働)する」「不確実性を計画する」といった3つの原則を紹介していきます。本書の良いところは、プラクティスや実践方法も紹介しつつ、常にこの原則に立ち戻ることの重要性を理解させてくれるところです。これにより、例えばアジャイルプラクティスにただ表面的に従っているだけで成果に繋がらない、というような状態に陥ることを避けることができるというのです。 また、「そもそもなぜアジャイルを採用しようとしているのか?」「チームや組織のゴールは何なのか?」といった難しい質問に答えることの重要性にも気付かされます。 今の所アジャイルの入門書としては第一に薦めたい本です。「みんなで」とある通り、開発者やマネージャーだけでなく、セールスやマーケティング、顧客など、どんな人にも薦められる本となっています。しかし多少意味をとりにくい部分などもあるため、読みにくい場合は他の本を読んでから再挑戦してもよいかもしれません。 見た目的にも分厚い本ではないので、取っ付き易いのではないかと思います! (届いたときは思ったより薄くて驚き、その中身を読んでその内容の濃さに再度驚きました) 『レガシーコードからの脱却――ソフトウェアの寿命を延ばし価値を高める9つのプラクティス』(オライリー・ジャパン) 本書は「IT エンジニア本大賞 2020」にも選ばれた本であり、目を通した方も多いのではないでしょうか。タイトルにこそアジャイルとはありませんが、「レガシーコード」に対処するための選択肢としてアジャイルソフトウェア開発を取り扱っています。 前半では「レガシーコード危機」と題して、「100 億ドル単位の損失」などといったショッキングなデータを持ち出し、ソフトウェア開発を「何かが間違っている」「素人業界」と辛辣に批評しています。しかし、そんな中でも成功しているプロジェクトはあり、賢人たちによる新しいアイデアによってソフトウェア業界は正しい方向に動き始めているとします。 後半では副題にもある通り、レガシーコードに対処する、或いは最初からレガシーコードを作り出さないための9つのプラクティスをその原則とともに紹介しています(原則とプラクティスが不可分なのは先に述べたとおりです!)。プラクティスは、多くがアジャイルやエクストリーム・プログラミング (XP) に由来するものです。 本書は比較的技術プラクティスを重視する姿勢が感じられます(勿論、原則を理解していなければならない、ということは再三再四注意されます)。原則なきプラクティスはうまくいきませんが、原則だけでプラクティスがなくてもまたうまくいきません。先の『みんなでアジャイル』と合わせて読むことで、原則とプラクティスの両面からアプローチできるのではないかと思います。 なお本書では「ウォーターフォールはレガシーコードを作り出し拡散する」などと批判しつつも、ウォーターフォールのような開発であろうが、或いはどんな方法論を使用していようが、これらのプラクティス(エクストリーム・プログラミングのプラクティス)は役に立つと述べています。アジャイルに必ずしも興味がなかったとしても、本書を読むことで多くの発見ができるでしょう。 読み物としても面白い本ですが、その分やや記述が冗長で纏まりがないと感じられることもあるかもしれません。また、プラクティスが理解しにくい、読みにくいと感じたら、そのプラクティスに特化した書籍を読んでみることをおすすめします。最初の数プラクティス(「やり方より先に目的、理由、誰のためかを伝える」「小さなバッチで作る」等)はアジャイル由来の部分が大きいため、『アジャイルサムライ』(オーム社)などを読んでみるとよいかと思われます。 『SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発』(翔泳社) 本書は 2013 年に発売された同名の本の改訂版です。私は改定前の方を読んでしまい、この増補改訂版は読んでいないため(すみません!)、以下は改定前のものについての話となります。 本書はアジャイルのフレームワークの1つであるスクラムを中心に解説した本です。最大の特徴は漫画仕立てで読みやすいことです! かつ、これ1冊でスクラム開発を始めるために必要な知識が一通り揃うようになっています。 アジャイルについてはなんとなくわかってきた(?)けど実際にどのように進めようか、と思ったとき、まずはスクラムに挑戦してみるということもあると思います。その時に是非チームで、或いは周りの人々も巻き込んで一読したい本です。 改定前のものを読む限りでは構成は大きく「基礎編」と「実践編」に分かれていて、「実践編」部分をレファレンス的に使うのは少し難しいかなと感じました。その場合は『エッセンシャル スクラム』(翔泳社)などをおすすめします。改訂版ではスクラムのルール変更に対応する等全面的に見直しを行っているとのことなので、改訂版も是非読んでみたいと思います! まとめ 在宅勤務をしていたとき VTuber(バーチャル Youtuber)の面白さに気づき、特に最近はホロライブの動画をよく見ていました(決してサボっていたわけではなく、通勤時間等が浮いたためです。本当です!)。そして、視聴数やチャットの流れる速度がえげつない VTuber を見るたびに、私もたくさんの人に本物の価値提供をしていきたいと思うようになりました。アジャイルへの入門がその一歩になればと思っています。 会津ラボでは本物の価値を提供したい人を募集しています。 (なぜかアプリケーションプログラマの募集が多いですが、システムの設計開発やアジャイル・DevOps…

    June 24, 2020
  • Minecraft(統合版)を自宅サーバーで遊んでみた!Ubuntuによる構築に挑戦

    Minecraft(統合版)を自宅サーバーで遊んでみた!Ubuntuによる構築に挑戦

    初めまして、新人の薄です。初めてブログの更新で不慣れな箇所もあるとは思いますが、よろしくお願いします! みんな大好き、Minecraft Minecraft 一度プレイしたら、 時間が溶けることで有名な「Minecraft」。「テトリス」の販売数を超え世界一売れたゲームになったとか。動画サイトのゲーム実況では、必ずといっていいほどにMinecraftの文字をみます。 Minecraftは一人でも楽しいですが、友人や家族と一緒にやるとさらに楽しくなります。しかし、マルチプレイを行うにはいくつかの条件があります。この記事ではマルチプレイをお金をかけずに楽しむことを目的にサーバーの構築について紹介していきます。 マルチプレイ マルチプレイを複数人の仲間のみが入れるワールドで行うのは、少々面倒です。マルチプレイを行うには以下の方法があります。 専用機によるMincraftサーバーの構築・公開 専用機を自前で運用することは難しいですから、公式・非公式の有料レンタルサーバーの利用が一般的です。 ゲームをしながら同じパソコンでMinecraftサーバーを構築・公開 パソコンの性能とインターネット回線に余裕があり、遊ぶ際にゲームを起動する必要があります。セーブデータを持っている人がプレイしていない時間は、続きを遊べません。Minecraftサーバーの構築はゲームが自動でやってくれます。 Minecraftサーバーがほしいなぁ… 私の場合は友人から「セーブデータを持っている人が遊んでいない時間でも、みんなでMinecraftを遊べるようにしてほしい」との要望をもらいました。この要望からMinecraftサーバーに求める条件は以下のようになりました。 いつでもゲームに参加できること マルチプレイ可能(2~5人) 仲間だけでゲーム 各ゲーム機、スマホ、タブレット、PCから利用可能なMinecraft Bedrock Edition(統合版) お金はない これらの条件を元に検討してみます。 有料レンタルサーバーだと維持費が高い 誰かがプレイ時にサーバーを立てる方法では、いつでもゲームに参加できない 無料サーバーは他人がいる 以上の理由から、専用機を用意しMincraftサーバーを自分で構築することにしました。 ConoHa VPS 専用機を自前で運用することは難しいので、「多少維持費がかかってもMinecraftサーバーを簡単に用意したい」という方はレンタルサーバーがおススメです。700円分の無料クーポンが貰えるので2GBメモリのプランなら約8日強は無料で使えます。 マイクラのマルチサーバー構築を諦めたひとは必見サーバーにConoHa VPSを選んで分かったことマイクラのマルチサーバー構築を諦めたひとは必見サーバーにConoHa VPSを選んで分かったこと サーバー? サーバーといってもWindows10とそこそこの性能のデスクトップPCで十分です。というわけで、家に余ってるPCがないか探したところ…転がってました! 項目 性能 CPU Intel core 2 duo メインメモリ 3GB OS Windows7 失礼いたしました。”そこそこの性能のデスクトップPC”が家にありませんでした。これは”10年前のデスクトップPC”です。お詫びして訂正いたします。 みなさんご存じだとは思いますが、Windows7はサポートを打ち切られておりネットに接続するのは危険です。また、Windows10無料アップグレード期間にこのデスクトップPCは放置されていました。つまり、Windows10にお金を出してアップグレードを行う必要があります。しかし、Windows10を買うお金はありません…。そもそも、まともに動かない可能性の方が高いです。メモリ3GBですし。よってこのデスクトップPCを使いつつ、OSを入れ替えることにしました。 なお、マインクラフトマルチサーバーの必要スペックについて詳しくは、下記の記事をごらんください。 Minecraftサーバーを低コストハードウェアで検証 (デスクトップPC/Pine64/Android) サーバーOSとサーバーソフトウェア サーバーの構築に必要なOSとソフトウェアです。すべて無料で配布されているため、お金がかかることはありません。 サーバーOS Ubuntu Ubuntu DebianベースのLinuxディストリビューションで誰でも無料で使えるOSです。 Ubuntu…

    June 22, 2020
  • アニメーションアイコンで横スクロールすることを案内するJavaScriptライブラリ「scroll-hint」の使い方

    アニメーションアイコンで横スクロールすることを案内するJavaScriptライブラリ「scroll-hint」の使い方

    レスポンシブデザインのコーディングに際して、横にはみ出させざるを得ないコンテンツがある。そのもっともたるものが表レイアウトで、モバイルスクリーンでは、だいたいの場合は横幅超過してしまう。 無思慮な状態だとページ全体が押し広げられ、想定しないところに横スクロールが発生する。このことを考慮して、対象エリアにのみ横スクロールするようなスタイルを当てるのが一般的であろう。 それ自体は周知のことで、取り立ててお伝えすることではない。ただしスマホで閲覧した場合のスクロールバーは非表示になる仕様上、table要素はただただ見切れているように認識され兼ねないわけだ。伝えたいことが見逃されるのは大変不利益になる。 そんな事案に最適なライブラリがある。 このエントリーでは、バナー通知で横スクロールできることを促すJavaScriptライブラリ「scroll-hint」を紹介したい。 ScrollHint について ScrollHintは、ポインターアイコンのバナーを表示して、スクロールできることを通知してくれるJavaScriptライブラリだ。 https://appleple.github.io/scroll-hint/ 特徴 ライブラリに依存しない Vanilla JSで極めて軽量 導入 まず入手方法は、次の3つから都合のよいものを選んでほしい。 npm or yarn CDN Download npm or yarn CDN Download https://appleple.github.io/scroll-hint/ 設置・実行 以下例はバンドラー環境下を想定している。CDNにて読み込んだ場合は、import文は不要だ。 設定 Name Default hint suggestClass is-active スクロールされたとき追加されるクラス scrollableClass is-scrollable スクロール可能なとき追加されるクラス scrollableRightClass is-right-scrollable 右へスクロール可能なとき追加されるクラス scrollableLeftClass is-left-scrollable 左へスクロール可能なとき追加されるクラス scrollHintClass scroll-hint ターゲット要素に付与されるクラス scrollHintIconClass scroll-hint-icon 通知要素に付与されるクラス scrollHintIconAppendClass scroll-hint-icon-white 通知要素に付与されるクラス scrollHintIconWrapClass scroll-hint-icon-wrap…

    February 17, 2020
  • 【無料】PHP無し、HTMLだけ!お問い合わせフォームの作り方

    【無料】PHP無し、HTMLだけ!お問い合わせフォームの作り方

    お問い合わせフォームを設置するとき、PHPなどのサーバサイドに類するいずれかの言語とHTMLの知識が必要になる。サーバサイドの処理があってこそお問い合わせフォームが機能することは、きっと既知のことだと思う。 しかし「HTMLはできるけど、PHPは…。」っていう事例は少なくない。やはりスクリプト言語が関わってくるとややこしくてちんぷんかんぷんだ、という感想は非常に共感できる。わたしもHTML,CSSの知識しかなかった頃、お問い合わせフォームの実装に際してPHPに接触したわけだけれど、「なんて難解なんだ」と思ったものだ。簡単に実装できる手段がないものかと。 そんなニーズにマッチしたサービスがある。 このエントリーでは、PHPの知識不要でお問い合わせフォームが実装できるWebサービス「StaticFroms」を紹介したい。 お問い合わせフォームとは お問い合わせフォームは、ユーザーがサイト運営者に連絡する手段のひとつで、サービスについての質問やクレーム、会社の雇用に関する問い合わせ窓口としてWebサイトに設置するケースが考えられる。 そのメリットとしては、必要最低限の情報を要求できる点が挙げられる。これによりフォーマットされた情報が得られるため見落としや誤解を極力回避できることだろう。またサイト運営者としては、メールアドレスを不用意に晒す必要がなく迷惑メールを減らすことにも寄与するはずだ。 ユーザーからすれば、お問い合わせ毎にメールクライアントを立ち上げて入力するより遥かに気軽でよい。電話に抵抗があるユーザーにとってもお問い合わせフォームによる窓口は便利なコンテンツといえる。 StaticFroms について StaticFromsは、お問い合わせフォームのメール送信をサポートするサービスだ。サービスの利用に際して、規約に遵守する限り無料(2020年2月現在)としている。もし不正利用が発覚した場合には、アカウントをブロックする処置が講じられる。 お問い合わせメールの送信先は、まずStaticFromsのAPIに向いており、その後、対象メールアドレスに転送される。件のメールデータは保存せず誰とも共有しないとし、安全を謳っている。 https://www.staticforms.xyz/ 特徴 無料(2020年2月現在) PHP(サーバサイド)の知識不要 HTMLのみで実装可 お問い合わせフォームの実装手順 さて実装手順を説明していくが、まだHTMLのみで実装できるのか半信半疑かもしれないから、まず以下HTMLコードを共有しよう。 これだけだ。 正しくは要所を修正するけれど、PHPなど書いていないことは理解してもらえたと思う。それを踏まえて手順を示そう。 1. アクセスキーを取得する https://www.staticforms.xyz/ にアクセスして、アクセスキーを取得しよう。以下キャプチャの具合に、対象メールアドレスを入力してボタンをクリックすると、当該メアド宛にアクセスキーが送信される。 アクセスキーの発行が成功すると以下メールを得られる。本文中の「Access Key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」がアクセスキーだ。太字の部分をコピーしておこう。 2. HTMLを修正する 前述したHTML内に<input type=”hidden” name=”accessKey” value=”aaaaaaaa-bbbb-cccc-dddd-eeee6666kkkk”>を確認できるだろうか。これのvalue属性値に、さきほどコピーしたアクセスキーをペーストしよう。 続いて<input type=”hidden” name=”redirectTo” value=”https://example.com/contact/success”>のvalue属性値に記述しているURLは、お問い合わせフォームの送信後のリダイレクト先になる。送信完了ページに遷移させるのが一般的だろうから、参照パスを記述したい。 このときルートパス(例:/thenks.html)や相対パス(例:./thenks.html)としてはならない。必ずドメインを含めたURL形式(例:http://ドメイン名/thenks.html)にしてほしい。さもないとStaticFromsのAPIサーバを参照してしまい、想定したページを表示させられないはずだ。 さいごに<input type=”hidden” name=”subject” value=”Test from jsfiddle”>のvalue属性値にメールの件名を書き込もう。 ここまで来たら、だいたいお問い合わせフォームの機能を果たしている。 お問い合わせフォームのカスタマイズ 前章でお問い合わせフォームとしての機能は果たしているのだけれど、Webサイトのコンテンツとしては貧弱と言わざるを得ない。 まず見栄えがショボい。前述のソースコードだけでは簡素極まる状態だから見栄えの調整が必要だろう。また入力フィールドの値チェックがないことで誤入力や未入力が発生するため、妥当性チェックがあったほうがよい。 このあたりのことも得意ではないというあなたのために、入力フィールドの見栄えの調整と妥当性チェックのサンプルを示そうと思う。参考にしてもらえると有り難い。 見栄えを調整する 見栄えを整えるためにスタイルシートを用いることは、ご存知かもしれない。しかしフォーム関連のHTML要素はブラウザ毎に独自のユーザーインターフェースをしていて、差異を無くすことに手こずるようなケースがある。このような要望に対応したのがCSSフレームワークのBootstrapだ。 Bootstrapを使ってモダンな入力フィールドに整えようと思う。Bootstrapのスタイルを適用するに際して、CSSファイルを読み込みたい。以下例ではCDNサービスにホストされたファイルを参照している。もし要件に沿わず不都合であるならばダウンロードして利用すればよい。 続いて各種入力フィールドにBootstrap規定のclassを付与していくわけだが、以下ソースコードを眺めてもらうのが早そうだ。 See…

    February 4, 2020
  • モバイルブラウザの100vh問題を回避するReactコンポーネント「react-div-100vh」の紹介

    モバイルブラウザの100vh問題を回避するReactコンポーネント「react-div-100vh」の紹介

    要素の高さをビューポートに吸着させる手段として、100vhが最適解ではあるが、モバイルブラウザにおいては悩ましい点があることをご存知だろうか。 モバイルブラウザには、URLを表示するアドレスバーとタブ切り替え操作等のコントロールバーが備わっている。これらはそれぞれスクリーン上部と下部に配されていて、ユーザーの操作によって現れたり隠れたりするわけだが、100vhとするとバーが隠れた状態のビューポートを認識してしまう。この状態でバーが出現するとページ下部に重なる具合になる。想定としてはページ下部に続いてコントロールバーが出てほしいにも関わらずだ。 この事象を解決してくれるReactコンポーネントがある。 このエントリーでは、モバイルブラウザの100vh問題を回避するReactコンポーネント「react-div-100vh」を紹介したい。 react-div-100vh について react-div-100vhは、モバイルブラウザのビューポート100vh問題を回避するReactコンポーネントだ。アドレスバーとコントロールバーがある状態のビューポートを認識することで、ページ下部にコントロールバーが重なる見苦しさを回避してくれる。 https://github.com/mvasin/react-div-100vh インストール 設置 デモンストレーション <div style={{height:100vh;}}>のとき <Div100vh>のとき まとめ モバイルブラウザの100vh問題を回避するReactコンポーネント「react-div-100vh」の紹介だった。 react-div-100vhは、レンダリング前にwindowサイズを計算して高さを明示しているようだから、表示された後にチラつくような動作はないだろうと思う。またこの回避策はReactアプリに限ったことではなく、通常のコーディングでも活用できるもので、ビューポートに吸着させる要素にwindow.innerHeight値を与えれば、同様のことが果たせるはずだ。 このエントリーが、あなたのクリエイティビティを刺激するものであると期待したい。

    January 31, 2020
  • 表示崩れの報告?閲覧環境の情報共有ができるWebツール「mybrowser.fyi」が便利!

    表示崩れの報告?閲覧環境の情報共有ができるWebツール「mybrowser.fyi」が便利!

    マークアップエンジニアならば、「表示が崩れている!」と報告を受けた経験があることと思う。そのようなとき、決り文句のごとく、 「ブラウザは?」「OSは?」「ブラウザのサイズは?」 を質問するのだけれど、報告主がクライアントで、さらに用語が伝わらない場合において、そのやり取りだけで時間を浪費してしまう。ましてやブラウザのサイズなど感覚でしか分からないケースのほうが多いことだろう。 そのような場合に最適なWebツールがある。 このエントリーでは、閲覧環境の情報共有ができるWebツール「mybrowser.fyi」を紹介したい。 使い方 使い方は至って簡単だ。下記URLを対象者に観てもらって、URLを返戻してもらえばよい。 https://mybrowser.fyi/ 以下キャプチャは、わたしが閲覧したときのものだ。 ご覧のとおり、ブラウザがChromeで、OSがmacで、ブラウザサイズが1582×1242で、スクリーンサイズが2560×1440で、JavaScriptが有効で、Cookieが有効であることが一目瞭然だ。 「COPY LINK TO THIS REPORT」ボタンをクリックするとURLをコピーできる。それをメールなりにペーストしてもらえばよい。やり取りもスムーズになって報告者をイラつかせずに済むかもしれない。 機会があれば積極的に活用してみてはいかがだろう。 このエントリーが、あなたのクリエイティビティを刺激するものであると期待したい。

    January 30, 2020
  • VSCode拡張機能「Fabulous」でCSS記述を時短!高速コーディングのお供に

    VSCode拡張機能「Fabulous」でCSS記述を時短!高速コーディングのお供に

    CSSを記述するにあたって、Emmetやスニペットで時短を試みるケースは一般的で、あなたも導入していることだろう。これら機能によって開発は、相当に高速化していることは疑いようもない。無論わたしもVSCodeの拡張機能に追加していて、事あるごとにEmmetショートコードを書いたりスニペットを表示させたりして時短を試みている。 さて前述のものが、かなり優秀だからこれ以上はなさそうなのだけれど、GUI操作でCSSプロパティを挿入してくれるVSCode拡張機能がある。 このエントリーでは、VSCode拡張機能「Fabulous」を紹介したい。 Fabulous について Fabulousは、Visual Studio CodeでCSS記述をサポートする。アクティブにするとサイドバーが現れてGUIを操作できる。 fabulous 特徴 CSS-in-JSライブラリ(styled-components、emotion、linaria)をサポート .css、.scss、.js、.jsx、.tsx、component.ts、.vue、.svelteに対応 VS Code にインストール Extensionsメニューで「fabulous」を検索して、インストールしよう。 Fabulous をつかう CSSファイルを開き、Fabulousアイコンをクリックすることでサイドバーが開閉する。 CSSファイルにCSSセレクタを記述後、カーソルを合わせると、FabulousサイドバーにGUIが現れる。 あとは適宜CSSを指定するとよい。きっと悩むことなく直感的に操作できるはずだ。 まとめ VSCode拡張機能「Fabulous」の紹介だった。 Fabulousを常用する場合において、つねに上から指定していくなどルールを定めておくことで一貫性のあるCSS記述ができると思われる。そもそも直感的な操作が可能ではあるが、慣れてしまえばスニペットで記述するより遥かに速くコーディングできるかもしれない。 よくない点としては、最後に指定したプロパティの末尾にセミコロンが無いこと、display:grid;が無いこと、positionの上下左右が無いこと、font-weightにboldが無いことが挙げられる。 とはいえ、時短を阻害するほどのデメリットではなく、ざっと指定してから整えればよい。使えそうならば導入してみてはいかがだろうか。 このエントリーが、あなたのクリエイティビティを刺激するものであると期待したい。

    January 28, 2020
  • [React Native] トースト通知するライブラリ「react-native-tiny-toast」の紹介

    [React Native] トースト通知するライブラリ「react-native-tiny-toast」の紹介

    ユーザーの操作に応じて状態を知らせる機構に「トースト通知」というものがある。ローディング中であることを伝えたり通信の成否を伝えたり、ポップアップ表示することでユーザーの迷子を防ぐことに寄与するものだ。 とくにネットワーク制限やデバイスのスペックに影響を受けやすいアプリケーションにおいては、必須要素のひとつと認識されるもので、RNアプリ開発でも例外ではない。 それこそ各種UIコンポーネントには、かならずトースト通知UIが用意されているわけだが、それら実装ケースはそれほど多くなく感じる。 たとえばAmazonでカートに入れるボタンをタップしたとき、あるいはSlackのメッセージ内の画像をコピー・保存したときに現れるトースト通知は、よく思い出してもらえるのではないだろうか。 このエントリーでは、オーバーレイ式にポップアップ表示されるトースト通知「react-native-tiny-toast」を紹介したい。 react-native-tiny-toast について react-native-tiny-toastは、React Nativeアプリに実装するトースト通知コンポーネントだ。AmazonやSlackの操作時にみられるトーストUIに酷似している。 https://github.com/shx996/react-native-tiny-toast 特徴 iOSとAndroidで動作サポート アイコン、スタイルのカスタム可 ローディングアイコンはRNのActivityIndicatorを使用 インストール 設置 設定 Props name default type hint containerStyle null Object 梱包要素のスタイル定義 duration Toast.durations.SHORT Number 期間 delay 0 Number 表示開始までの遅延時間 animationDuration 200 Number アニメーション期間 visible false Boolean トースト表示の正偽 position Toast.position.bottom Number トーストの表示位置 animation true Boolean フェードアニメーションの正偽 shadow false Boolean 影の正偽 shadowColor…

    January 23, 2020
  • セレクタ間のチルダ記号って?CSSの間接セレクタ「E ~ F」を使いこなそう!

    セレクタ間のチルダ記号って?CSSの間接セレクタ「E ~ F」を使いこなそう!

    このエントリーでは、CSSの間接セレクタについて共有したい。 CSSのセレクタ定義には、さまざまな用法があって、なかでも「タイプセレクタ、子孫セレクタ、IDセレクタ、クラスセレクタ」は一般的だろう。マークアップに精通している、あなたにおいても、よく馴染みのあるセレクタだと思う。 基本中の基本だからコーディング入門で真っ先に教え込まれるセレクタであるのだが、昨今のWebデザインを前述セレクタだけでしのぎ切るのは骨が折れる、というか、まず難しい。 同一項目にスタイルを与えるケースならば、子孫セレクタで充分なのだけれど、親要素を共にしたある要素の1番目に対して差別化したい場合など求められることがあるかもしれない。 言葉では伝わりにくいから、以下ソースコードを用意した。section要素に属した最初のh2要素以外に対して、スタイルを与えたいようなケースを考えてほしい。 この場合、すべてのh2要素にスタイル適用して、最初のh2要素のみ打ち消しスタイルを当てるといったことが考えられる。 :first-of-type擬似クラスは、親要素を共にしたなかの最初の要素を指す。サンプルのようにh2要素前になにかしらの要素が存在するケースに役立つ疑似クラスだ。もし最初のh2要素より前にHTML要素がないのならば、:first-child疑似クラスでも同様のことができる。 最初の要素を差別化するための打ち消しスタイルについて認めてもらえたと思う。差別化する要素特有のスタイルがあるケースは、:first-of-type擬似クラスを用いて仕上げればよいが、サンプルのように全体のものを打ち消すだけのものだと冗長さがある。 打ち消しスタイルをなくしてスマートに定義するサンプルも見てもらいたい。 :not()否定疑似クラスは、そのカッコ内に否定したいセレクタを当てる。サンプルでは、:first-of-type疑似クラスがある。つまり最初のh2要素は無視して、それ以外のh2要素にのみスタイルが適用される。 最初の要素を無視することで打ち消しスタイルが無くなり幾分すっきりしたと思う。差別化する要素のスタイルが不要なら否定擬似クラスを使うとよいだろう。 では、これを間接セレクタを用いて記述すると以下のようになる。 それほど変わった様子はないのだけれど、これまでのサンプルと同様に最初のh2要素以外にマージントップが適用される。 その詳解はというと、間接セレクタというものは兄弟要素の弟にスタイルが適用される。つまり最初のh2要素を兄とした場合に、それ以降のh2要素はすべて弟と見立てているわけだ。そういうものだと理解してもらえると有り難い。 まとめ CSSの間接セレクタについての共有だった。 間接セレクタを説明するために、いくつかのセレクタを比較に出して優位性があるように話を進めたのだけれど、決して間接セレクタにすべきというものではないことは、どうかご承知おき願いたい。 このエントリーが、あなたのクリエイティビティを刺激するものであると期待したい。

    January 16, 2020
  • 画像トリミング機能を提供するJSライブラリ「react-image-crop」の紹介

    画像トリミング機能を提供するJSライブラリ「react-image-crop」の紹介

    画像トリミング機能は、ビューアソフト等に見られる代表的な機能のひとつであるが、Webアプリに実装しなければならないシーンは滅多に遭遇しない。一方でサムネイルの生成であれば、サーバサイドで一定サイズにトリミングすることを考えられるが、WebアプリのGUIツールとなると、なかなか骨が折れそうな実装になりそうだ。スクラッチ開発など非効率が過ぎる。 とはいえ、件の機能要件が盛り込まれないとも限らないわけで、その準備はしておきたい。 このエントリーでは、画像トリミングツールを提供するJSライブラリ「react-image-crop」を紹介したい。 react-image-crop について react-image-cropは、画像ビューアソフトやデザインツールに見られるGUIトリミング機能を実装するReactコンポーネントだ。マウスによる操作で切り抜きたい範囲を選択することで、新たな画像を描画することができる。 https://github.com/DominicTobias/react-image-crop 特徴 レスポンシブ対応 タッチイベント対応 トリミングモードの切り替え(任意/アスペクト比) キーボードイベント対応 他ライブラリに依存しない インストール 設置 設定 props name type default hint src(必須) string 画像ファイルを指定 onChange(必須) Function チェンジイベントに応じて発生するコールバック crop(必須) Object トリミングパラメータを定義 minWidth number 0 トリミング最小幅 minHeight number 0 トリミング最小高さ maxWidth number トリミング最大幅 maxHeight number トリミング最大高さ keepSelection bool false 選択領域外のクリックで、選択解除するか否か disabled bool false 非活性 locked bool false…

    January 15, 2020
←Previous Page
1 2 3 4 5 6 … 14
Next Page→

会津ラボ

Proudly powered by WordPress