EDU』を使って、基本操作からブロックを並べてプログラミングする方法、人気の言語Pythonでのプログラミングの初歩まで、学べる書籍です。プログラミングに慣れた人だけでなく、プログラミングの学び方もわからない初心者でも、学び方から学べるようになっています。2019で発表された「SwiftUI」は、ユーザーインターフェイスを作るためのフレームワークです。本書では、このSwiftUIについては、わかりやすく解説しています。SwiftUIはSwift専用であり、Swiftというプログラミング言語の特徴や機能を活かしたユーザーインターフェイスを作るためのフレームワークです。そのコンセプトは「ユーザーインターフェイスを作るための最短パスを提供する」です。わかりやすく、短いコードで、高度なユーザーインターフェイスを構築できます。本書は丸々一冊を使って、このSwiftUIを解説しています。気になった章から読んでいただいて構いません。順番に読んで頂いた方がわかりやすいと思います。サンプルコードはどれも短めですので、ぜひ、試してみてください。Xcodeのライブプレビューで気軽に試行錯誤できます。本書は、Googleが開発したUIツールキット「Flutter」について、基本からの応用まで丁寧に解説した1冊です。01では導入方法と画面遷移の基本的な実装を学びます。02ではDart言語の特徴を掴むことで自在に言語を操れるようになるはずです。04を学べば、作成したい画面を作れるようになるでしょう。05で、ライブラりを探したり、自作することもできます。06を読むとよいでしょう。06は、説明が難しくわかりにくいかもしれませんが、Flutter初級を抜け出すには必要な知識です。09が役立つはずです。本書を手にとった理由はさまざまあると思います。・iOSアプリを運営してきて、そろそろAndroid版も作りたい。・Android開発者はいるけど、iOS開発者がいない。・開発コスト/運用コストを抑えたい。・なんだか流行ってきたのでどんなものか知りたい。・他のマルチプラットフォームを使ってるけど、より良いものを探している。・Flutterで開発してきたけど、もっと深く知りたい。これらは、本書を読まなくてもFlutterの継続的利用とその公式サイトを読み込めば間違いないく解決できます。Flutterを使ったり、公式サイトを読んでいくと「Googleの本気」を感じるはずです。Google以外のOSSも含め、Flutterほど公式ページが充実しているのは少ないのではないでしょうか。公式でYouTubeを使っての解説もたくさんしています。本書は、それらの公式の情報と筆者の2年ほどの業務経験(+OSS活動)を合わせて構成しています。本書を読むことで基本から中級の知識の重要な箇所を理解できるようにしているつもりです。本書をきっかけとして、公式に触れることで理解が深まることを目的としています。■著者:榊原昌彦Web技術でつくることができるプロダクトの選択肢は大きく増えました。Play」(Android)で配信して成功している多くのモバイルアプリが存在しています。本書で紹介するIonicとCapacitorは、Web技術を用いてアプリを最短距離でつくるためのフレームワークです。筆者のまわりでは、jQueryを多少さわれるWebデザイナーがIonicを利用してアプリをリリースした事例もあり、決して高すぎるハードルではありません。本書を手にとったことが、Web技術でのアプリ開発のきっかけになりましたら幸いです。俊之Kaggleとは、コンペティションを主催するほかに、機械学習エンジニアの育成から就職支援まで携わる、データサイエンティスト支援の一大ポータルです。幅広く解説しています。本書では、データ解析コンペティションを開催しているKaggleというサイトを紹介しますが、Kaggleのコンペティションは、単純にデータを受け取り、解析し、スコアが付けられるだけの流れ作業ではありません。Kaggle上で行われるコンペティションは、それぞれが1つのドラマです。データの特性に関する議論や有効なソリューションの公開が行われると思えば、仮順位の推移を巡る駆け引きもあり、そして時には主催者側の問題で右往左往する参加者の姿が見られたりと、コンペティションの開催から終了まで続くお祭り期間中には、さまざまな人間模様を見ることができます。Kaggleのコンペティションを通じて、そうしたデータサイエンティストたちの活動の実態を紹介し、また、実際にKaggleに参加して、人間味あふれるデータサイエンティストたちと交流するにはどうすればよいかを紹介するために、本書を執筆しました。そのため、本書では、単にKaggleの使い方を解説するだけではなく、実際のコンペティションで起こった事例を、できるだけ多く取り入れるようにしています。Code)」について、使い方の基礎から応用テクニックまで幅広く解説しています。Codeをすぐに使いこなせる便利な拡張機能を紹介するだけでなく、プラグインの開発方法までも掲載しています。Codeの基礎的な使い方から拡張機能の開発といった奥深い内容までを解説しています。プログラマーの方は読みながら環境構築を進めることができますし、プログラミング初心者はこの本を読みながら、実際にコードを書く練習をはじめてみてはいかがでしょう。本書では理論と実践のどちらにもフォーカスを当てAIや機械学習について「ある程度、中身を知って使える」を目指す入門書です。APIや国の統計データなど、生のデータを使い、遊んでいるような感覚で理解が進む1冊です。本書は、AIや機械学習について、「何だかよくわからないけどすごいもの」という理解から、「ある程度、中身を知っていて使える」にアップデートしたい人(もしくは、アップデートしなければいけなくなってしまった人)に向けた、導入となる最初の1冊になることを目指しています。本書では、理論と実践、両方を抑えています。数式を使わずに、直感的な理解ができるように機械学習の理論について解説します。「遊んで学ぶ」というタイトルの通り、理論の勉強も楽しめるように、具体例や図を多く使っています。いって不正確にならないように繊細な注意を払いながら、ギリギリまで噛み砕いて説明を行っています。その後、よく使われるデータセットではなく、「APIで自由に取得できる、さまざまな企業が提供しているデータ」「国が提供している統計データ」などの生のデータを使い、実際に分析を行います。本書は、実際にデータを取得するところからスタートすることで、「データの量を増やしたら結果はどうなるのだろう?」「このデータを可視化してみたらどうなるのだろう?」「変数を変えてみたらどうなるのだろう?」と、まるでデータを使って遊んでいるような感覚で理解が進むことを狙っています。データ分析を行うにあたり、多くの人は、RもしくはPythonというプログラミング言語を使います。どちらも、データ分析やデータ整形、そして可視化を行うのに有効なライブラリが多数存在しているため、非常に人気です。本書では、Pythonを用いて実装コードを記述しています。Rを使いたい人も進められるように、RとPython両方のコードを、Github上にて公開しています。本書では、Linuxカーネルで日々行われている修正を題材に業務開発におけるソフトウェアの修正を考えていきます。Linuxはオープンソースであり、プログラムのソースコードが一般に公開されているので、誰でも読むことができます。はいってもなかなかソースコードを読む機会はないのではないでしょうか。本書ではなるべくLinuxカーネルの修正内容がやさしいものを取り上げ、プロのプログラマーではない方にもわかりやすいように解説していきます。Linuxの最先端でどんな修正が行われているのかを垣間見ながら、少しでも楽しく学んでもらえたら嬉しいです。本書は、筆者がTwitterで「#カーネルパッチ勉強会」というつぶやきをしていたことからヒントを得ています。本書で取り上げているLinuxカーネルバージョンは4.16~5.0になります。3でゼロから実装することで、その仕組みや原理を学べる1冊です。ビッグデータを解析するための機械学習アルゴリズムとしては、ディープラーニング、つまりニューラルネットワークの他にも、ベイズ分類器や決定木、それにそれらを組み合わせた「アンサンブル学習」アルゴリズムなど、さまざまな種類があり、データやその利用シーンに応じて適切なものを選択しなければ、その威力を発揮させることはできません。実際、海外のデータコンペティションにおいてはLightGBMなどのアルゴリズムがよく利用されますが、それは勾配ブースティングアルゴリズムの一種であり、「アンサンブル学習」アルゴリズムの1つです。した「アンサンブル学習」アルゴリズムは強力な分析力を提供してくれますが、それらを正しく使いこなし、最大限の性能を引き出すためには、アルゴリズムの詳細についての理解が欠かせません。どのようなアルゴリズムについても、その手法を最もよく理解できる学習手段は、そのアルゴリズムを実際に一からプログラミングしてみることなのです。した「アンサンブル学習」と呼ばれる手法について、最も基礎的な部分から解説し、実際にコードを作成しながらその動作原理を学ぶ、というの本書の目的となります。本書では、Python言語を使用して、複数のアンサンブル学習アルゴリズムを、完全に一からスクラッチで制作します。数式でアルゴリズムを理解するのではなく、実際に一からプログラムを書き、コードに触れることで得られる知識は、実際のデータ解析における問題解決能力を大きく養ってくれるはずです。本書は手を動かしながらディープラーニングを学べる1冊です。最新トレンドとその追い方や、無料クラウドGPUのColaboratoryを活用した実行方法まで丁寧に解説しています。20以上の事例を手元のPC・スマホで動かすことができます。自分のやりたいことや課題に適用できる「総合力をつけること」を目的に、基礎から応用まで、文字通り、ひとっ飛びに紹介します。全編を通して「習うより慣れる」の考え方で、下記のように進めます。本書は、次のような目的やお悩みを持つ方に最適です。必須ではありませんが、下記があるとさらに本書の内容を活用できるでしょう。さあ、本書と、本書を超えた機械学習の冒険に出かけましょう。本書では、Webアプリを開発するための新しいプログラミング言語「Elm」の基本・ポイントをわかりやすく解説しています。基本的な文法はもちろん、Elm亜アーキテクチャやその応用についても詳しく解説しています。Elm言語に入門したプログラマがこのような感想を口にするのを、筆者はこれまで多く目にしてきました。筆者の経験からもこの言葉は真実だと感じます。Elmは静的な型を持った関数型言語です。手軽で迅速なアプリケーションの作成を支援する一方で、堅牢で信頼性のあるアプリケーションを作ることにも特化しています。function」というエラーメッセージを幾度となく目にしてきたことと思います。Elmを使えばその心配はいりません。Elmで書かれたプログラムは実行時エラーがまったく発生しないからです。そんなことが本当に可能なのかと思われるでしょうが、実際にコンソール上に赤い文字を見つけることは非常に困難です。他にも、Elmによるプログラミングを体験した人からは次のようなことをよく口にします。本書では、Elmの文法だけではなく、それを使って実際にアプリケーションを組み立てる方法に到るまで、豊富な例とともに幅広く解説します。本書はそのような、プログラミングそれ自体を初めて学ぼうという読者から、Python言語の初~中級者に向けて、Pythonによるプログラミングの基本を解説します。Notebook上でのPythonコードの実行など、単純なコンソールアプリの作成だけではない、実践的な内容も紹介しています。本書では、一から新しくプログラミングを学ぼうという読者でも十分に理解できること、プログラミング特有のさまざまな概念について把握すること、Python言語の仕様について学ぶこと、さまざまなPythonパッケージの使い方を知ることなど、いくつかの目標を設定しました。本書を構成する各章は、それぞれの章を順番に読み進めることで、それらの目標を自然と達成できるように構成されています。Pythonの言語仕様はそれだけで膨大ですし、外部パッケージの機能なども含めてしまうと、その内容はとても1冊に収まる分量ではなくなってしまいます。そのため、本書で紹介している内容には、かなりの程度、筆者の主観によって削り落とした、限定的なものになっている箇所があります。本書を通じてPythonの世界をある程度でも理解することで、次のステップとしてPythonの言語仕様書を読んだり、外部パッケージの機能について調べたりできる程度のスキルを身に付けられるだろうと、筆者としては考えています。本書があなたのプログラマとしての成長を助ける、良い入門書となることを祈って、前書きとさせていただきます。Pythonは学習が容易な言語といわれています。確かに、Python以外の何らかのオブジェクト指向言語を扱ったことのあるプログラマにとって、Pythonの習得は容易なことでしょう。その他のどのような言語も扱ったことのない、完全なプログラミング初心者にとって、プログラミングに特有の概念を新しく理解する必要があることに、特に変わりはないはずです。本書はそのような、まったくのプログラミング初心者でも理解できることを目標に構成されています。その目標のために本書では、全体を通して1つのポリシーを採用することにしました。それは、「理論的な順序では物事を解説しない」というものです。理論的でないと聞くとギョッとする方もいるでしょうが、それにはきちんとした理由があります。「理論的な順序」に従うならば、Pythonの言語仕様と外部パッケージの仕様とは別のものです。似たような概念を含むリストとNumpyについて、言語仕様としてのリストを解説した200ページも後になって外部パッケージのNumpyを解説するのが、果たして親切といえるでしょうか(しかも実際のプログラムではNumpyの方が出現頻度が高いかもしれないにもかかわらず、です)。リストとNumpyとで「+」演算子の扱われかたが違うことを「理論的な順序」で解説しようとすれば、その前にまず演算子のオーバーロードについて解説することになります。必然的に、その前にはオブジェクト指向という概念、クラス、インスタンス、参照、ガベージコレクションなど、ありとあらゆる面倒事について理解をしなければならなくなります。それよりも、(必ずしも正確な喩えでないにせよ)変数は箱、配列は箱の列、そしてPythonにはリストとNumpyという配列があり、それらの違いはこれこれ......と解説する方が、少なくとも初心者にとっては親切なのではないでしょうか。したポリシーによる構成を採用したため、本書では(特にクラスや外部パッケージの機能について)同一の要素を異なる章の違う場所でバラバラに解説せざるを得なくなった部分も存在します。それらも、本書を読み進めることが、まったくの初心者がいっぱしのPythonプログラマになるための道程になる、という目標のため、そのようになっているのです。Python上級者やオブジェクト指向言語のエキスパートにおかれましては、どうぞ初学のことの気持ちに戻った上で本書を読んでいただければと思います。RのパッケージであるShinyを使ってWebアプリケーションを作る方法を解説しています。開発環境の構築やShinyの基礎から、具体的なアプリケーションの作成・公開まで丁寧に解説した1冊です。データサイエンティストや機械学習エンジニアという職業は、ここ数年で人気を大きく伸ばしました。ビッグデータと呼ばれる大規模なデータから分析を行って何らかの知見を導くことは、魅力的な職業でしょう。データサイエンティストや機械学習エンジニアが行うべきタスクは、データを使って分析することだけではありません。データ分析をする前に、そもそものデータを収集する必要があり、その後、分析しやすいように整形・加工し、可視化を行います。データ分析後は、それを社内・社外に向けたレポートを作成し、共有しなければなりません。本書は一冊を通して、Rユーザー向けに、レポート作成と共有に便利なShinyというライブラリについて解説を行います。Shinyとは、RでインタラクティブなWebアプリケーションを簡単に作るためのライブラリです。Rには、rvestなどのWeb上のデータをスクレイピングするためのライブラリがあり、dplyrなどのデータ整形・加工を行うライブラリがあり、ggplot2などの可視化に強いライブラリがあり、そしてWebアプリケーションとして共有するためのShinyライブラリがあります。すべて兼ね備えて一人前のデータサイエンティストです。その中の最後を担う重要な業務である「共有」に向けて、読者の皆様に本書が少しでもお役立ちできれば幸いです。本書では、Nuxt.jsについて概要や基本的な使い方からはじめ、最終的に中規模以上の開発を想定して、一からアプリケーションが開発できる状態をゴールとし、Nuxt.jsの知識とノウハウを解説しています。2.0に対応しています。「やりたいこと」から、Rubyの機能を探せる逆引きリファレンスが、バージョン2.3~2.5に対応して改訂しました。圧倒的な情報量で、サンプルも豊富に掲載しています。Ruby開発者なら手元に置いておきたい1冊です。このたびRuby逆引きハンドブックを改訂する機会に恵まれました。従来Rubyのバージョン1.8から1.9ごろに対応していたものを、2.3から2.5ごろの記述に更新しています。内容を読み返してみて、文法など、今日のRubyに繋がる基礎的な考え方は、初版の時点ですでに確立しており、骨格はそこまで変わっていないという印象を受けました。そこで基本的な章立ては従前を踏襲し、また、内容についてもそこまでのリライトをかけずに済んだ部分も多いです。申しましても、変えたところもあります。新しく増えたクラスやメソッドの解説を必要に応じて追加してあります。逆に減ったクラスもあり(Bignumなど)、これにも対応しないといけませんでした。Ruby自体よりもその周辺環境の動きが早かった部分があります。Rubygemsは組み込みになり、今ではBundlerの利用が一般的です。このような部分も全般的に現代的な記述に改めました。サンプルコードは現在のRubyでの動作確認を行っています。執筆時点でアクティブなRubyのバージョンである2.3/2.4/2.5について、動作を確認しました。本書の内容に関しては読者の皆さんが安心してお使いいただけるものと自負しています。改訂に際しては出版社を筆頭に著者陣勤務先など、各方面の多大なご尽力が必要でした。お名前を挙げていくことができず、平にご容赦ください。内容に瑕疵があれば(あると思いますが)、それはひとえに著者の責に帰すものです。Clusteringなどのニューラルネットワークを使用してデータの分類・数値の予想・クラスタリングなどを行う人工知能プログラムの作成方法をわかりやすく解説しています。」ウェブフロントエンド界隈でこの言葉を耳にすることが増えました。フロントエンドを取り巻く技術の発展によって、フロントエンドの役割は増え、フレームワークもより身近なものになっています。なに?」「フレームワークってなに?」という基礎概念と導入から、プロダクトに役立つ情報までを、体系的に解説しています。お使いの方が基礎を学ぶにも最適な1冊です。チュートリアルや実例集盛りだくさんのサポートページも公開しており、書籍と合わせてお読みいただけます。HTMLとCSSの初級程度の理解、文字列やオブジェクトの操作、関数の定義といった初級から中級程度のJavaScript構文の理解を必要としています。7以降は、Node.jsおよびコマンドラインを使った環境構築とES2015(ES6)の使用を前提に解説しています。これらについても導入方法と簡単な説明をはさみますが、事前知識があればよりスムーズに学習できます。本書は、ビットコインから生まれた次世代技術「ブロックチェーン」の解説書です。ブロックチェーンはもちろん、その他の技術との関係性についても学べる、エンジニアにおすすめの一冊です。世の中を賑やかしたビットコインは多くの人々を魅了し、その中で使われるブロックチェーンや分散台帳と呼ばれる技術は、新たな世の中の仕組みを創出する可能性のある技術だと注目を集めており、新たな価値観を生み出すものとして期待が寄せられています。ブロックチェーンは新たな価値観を創出する機会をもたらす可能性がある一方で、さまざまな議論が錯綜し、混乱しがちです。ブロックチェーンを利用した仕組みを構築しようとするのであれば、それを支える技術を理解しておくことが重要です。ブロックチェーン以外の技術についても、よく知っておく必要があります。本書ではブロックチェーンを技術的な観点で整理し、特徴や性質について理解を深められるように解説しています。関連する従来技術をいくつかピックアップし、その特徴やブロックチェーンと絡めた事例を紹介しています。本書で述べる要素や特性、それにまつわる課題について理解しておくことは、さまざまなブロックチェーンのソフトウェアを理解し考察する上での基礎になると期待しています。Fabricでのスマートコントラクトの簡単なサンプルプログラムを用意しています。Fabricの環境で実際にスマートコントラクトを実行してみることで、ブロックチェーンソフトウェアのイメージをつかむ助けになれば思います。読者の皆様が本書を入口として、ブロックチェーンの技術に関して理解を深めたり、ブロックチェーンの特徴を活用したシステムを開発したり、これからのブロックチェーン技術がもたらす可能性について議論を深めたり、また、関連する従来技術にも興味を持ち理解を深めていただくことで、ブロックチェーンに関する再発見をしていただけると幸いです。enchant.jsはゲームエンジンとして非常に人気があるJavaScriptライブラリです。本書では、初級者向けにenchant.jsを利用したゲーム開発の手法をわかりやすく解説しています。テクニックを解説しています。基本を解説した後は、ミニゲームからシューティングゲームやパズルゲーム、アクションゲーム、RPGゲームの開発など、具体的なサンプルを通じて学ぶことができる内容になっています。Playgrounds」を使ってプログラミングが学べる入門書です。いくつかのサンプルを通してプログラミングがやさしく勉強できる内容になっています。全体を通してルビを入れてあるため、小学生(小学4年生以上を対象)でも読める内容になっています。2.1では本書のコードのままではエラーになる不具合(もしくは仕様変更)があります。詳しくは下記のURLをご確認ください。ダウンロードできるサンプルは訂正情報に記載してある対応を行ったコードに入れ替えてあります。エラーになる方はサンプルの再ダウロードをお願いいたします。■著者:榊原昌彦Webサイトがつくれれば、モバイルアプリをつくることができる時代がやってきました。本書では、HTMLでモバイルアプリをつくるフレームワーク「Ionic」の紹介と、チュートリアルで作り方を解説しています。Ionicの最大の特徴は、UIデザインの良さです。海外には多くのユーザがいますが、その多くは「UIデザインがいいからIonicにした」と答えています。GitHub(ionic-team/ionic-conference-app)にデモがありますので、ぜひ、モバイル端末からアクセスしてみてください。」と敬遠されがちです。Ionicを使うと、Webサイトを作る感覚でHTML5を書いていけば、Web/iPhone/Androidアプリを同時に作ることができます。著者は昨年までWeb制作しかしたことはありませんでしたが、Ionicを使い始めたことで、Web/iPhone/Androidアプリを制作して、最近では継続的な収益を作り出すことができました。HTML5ひとつで、Web/iPhone/Androidアプリを更新できるので、ひとりでも継続的に新機能のリリースをしています。仮説検証サイクルを小さく回したいアプリ制作者はもちろんのこと、普段からHTMLをさわっているWeb制作者も一度お試しください。本書ではディープラーニングフレームワーク「Chainer」を使って、画像の自動生成や画像のスタイル変換、意味のある文章の自動生成や機械翻訳を行う人工知能プログラムを作成する方法をわかりやすく解説しています。本書は、Javaなどのプログラミング経験者を対象に、Scalaの基本・ポイントをわかりやすく解説します。Scalaの概要から基本構文、Scala独自のクラス、オブジェクト、パターンマッチング、トレイと、ジェネリクス(型パラメータ)のほか、Javaと連携する際のポイントも解説しています。これからScalaを覚えようという読者に最適な1冊です。本書では、クロスプラットフォーム開発ルーツ「Xamarin」とC#を使ったiOS/Androidアプリの開発手法をわかりやすく解説しています。これまで、Androidアプリのみ、iOSアプリのみを作成してきた方や、両方を別々の環境で作成していた方に向けて、Xamarinでの開発のポイントも説明しています。開発環境の構築やC#のポイントも解説し、Xamari.iOS、Xamari.Android、Xamarin.Formsに加え、XAMLやMVVMでの開発手法も解説しています。■著者:湊川あい/監修:DQNEO本書は、マンガと実践で学ぶGitの入門書です。Gitの概念はもちろん、GitHubやBitbucketについても丁寧に解説しています。これからGitを使い始める人にオススメの1冊です。そんな方のために、楽しくGitを理解できる本を作りました。上記3つの特長で、Gitを無理なく学べます。クリックしていくだけでGitを使えるツールを中心に解説しているので、初心者でも安心です。