カテゴリーアーカイブ OS

takahashi 著者:takahashi

Appleが異例の発表会で新型iPadを発表!話題の”あの”アクセサリにも対応!!

昨日の夜、Appleは定例のWWDCとは別の、異例の発表会(Let’s take a field trip.)を行いました。
その中で発表されたのはなんと新型のiPad(第6世代)!

そしてついにiPad Pro以外では初となる、ApplePencil対応となりました!!

Apple Pencil は筆圧検知に対応しており、精度も非常に高いと話題になりました。(一部の絵描きの方の間では、いままでデファクトスタンダードだったWacom社製タブレットよりも性能がいいと言っている方もでてきています。)

Apple Pencilの唯一の難点は、iPadの最上位モデル”iPad Pro”にしか対応していなくて、Apple Pencil(10,800円(税抜き))も合わせるとかなり高額になってしまっていたのですが、今回発表されたiPadは Wi-Fi 32GBモデルで37,800円(税別)という、比較的お手頃な価格になっていて、手が届きやすくなった印象です。

ApplePencilを使うためにiPad Proを買おうかと悩んでいた自分にはかなりの朗報でした。
これは欲しい…

今回の発表会で、ハードについてはメインはiPadのみだったようです。イベント内では他にもアプリケーションのアップデートの発表なども行われたようです。
発表の全体的な内容については、GIZMODOさんの記事でまとめられています。

【Apple Pencil対応、299ドルのiPadが登場!】Appleの発表イベント「Let’s take a field trip.」のキーノート実況 – GIZMODO

なお、かねてより噂されていた廉価版macbook Airと、新型iPhone SEについては残念ながら発表はなかったようです。
次回の発表会に期待ですね。

  • この記事いいね! (0)
村上 著者:村上

【Android】アプリに不要なパーミッションが追加されているときの対処法

今回初めて遭遇しましたが、開発したAndroidアプリに入れた覚えのないパーミッションが追加されているときの対処法です。
なお、追加されていたパーミッションは、android.permission.READ_PHONE_STATE でした。
が、アプリ内ではこの権限は不要のため(そもそも追加した記憶もない)、こちらを削除します。
ですが、そもそも パーミッションを記述してあるはずの AndroidManifest.xml に、READ_PHONE_STATE が記述されていないんですよね…。
本当に、一体いつ追加されたのやら。

参考にさせていただいたサイトはこちら。

対処法: 不必要なPermissionが勝手に追加されてるとき|Android開発・エラー置き場
http://android.tecc0.com/?p=161

で、削除方法ですが、

  1. targetSdkVersion を更新
  2. LibraryのtargetSdkVersion を更新
  3. AndroidManifest.xmlで上書きして削除

上記の3つがあるようです。
私は一番手っ取り早そうな3をチョイスしました。

 

3.の対処法は、AndroidManifest.xml に下記を追加して、特定のパーミッションを無効にします。

// パーミッションを無効に
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />

ポイントは最後の方に書かれている tools:node=”remove” です。

こちらを記述したら、あとは通常通り ビルド → 実行します。
スクショを撮り忘れましたが、設定 > アプリ からアプリの詳細を確認したところ、許可された権限の一覧から 不要な権限が削除されていました。

 

以上、アプリの不要なパーミッションを削除する方法でした。
ですが、何故このパーミッションが追加されたのか?という根本的な解決にはなっていないので、対処法 1か2で、解決策を探りたいと思います。

  • この記事いいね! (0)
takahashi 著者:takahashi

Gitバンドルのbashを使ってWindowsのcmdをUnixっぽくしてみる

クライアントマシンのOSはもっぱらWindowsを使うことがほとんどなのですが、サーバーはLinux/Unix系OSを使用することが多いです。
現行Windowsでは、OSに必要な操作はほぼGUIで完結するので、CUIで触るのはLinux系OSがほとんどでした。

ところが、開発やサーバー管理などをしているとWindowsを使っていてもCUIに頼らないといけない場面というのがでてきます。
普段使い慣れているLinuxとかなり使い勝手の違うWindowsのシェルは、いざ触ってみると戸惑うことが多いです。
また、Linuxは未だにCUIで使われる機会がおおいためか、CUIベースのツールはかなり充実しています。これらのツールは、さくっとサーバーの状態を確認したいときに非常に便利なのですが、Windowsでは標準で搭載されておらず、インストールもちょっと手間がかかるものも多いです。

かといって、何か操作する度にLinuxが動いているマシンにログインするのはちょっと面倒です。
そこで、Unix/Linux系で使えるポピュラーな機能の一部をWindowsに導入できないかなーと考えていろいろ調べていました。

VMで動かすとファイルのやりとりとかいろいろ不便。
かといってCygwinやWSLみたいにガッツリUnixライクな環境までは必要ない。

という方向けの、Windows上でネイティブに動く、簡単に”UNIXっぽい操作環境”を作る方法を紹介します。

実は、あるツールを入れていると、簡単にWindowsのコマンドプロンプトをUnixっぽくできます。
バージョン管理ツールのGitです。

実はGitをインストールすると、Unix/Linuxで非常によく使われるシェル”bash”のWindows版がついてきます。

今回はこれを利用します。
Gitのインストールが完了していれば

C:\Program Files\Git\bin

あたりのフォルダの中に、
“bash.exe”
というファイル名でインストールされているかと思います。
これをコマンドプロンプト上で開けるように、環境変数内の”Path”に、C:\Program Files\Git\binを追加しておきます。


スタートから”環境変数”と検索して”環境変数を編集”をクリックします。


“ユーザー環境変数”内のPathを選択し、”編集”をクリック


“新規”をクリックして、

C:\Program Files\Git\bin

を追加します。

これで準備完了。
コマンドプロントで

bash

と入力すると、なんとWindows上のcmdでbashが使えてしまいます。(※WSLとコマンド名がかぶってしまったため、別の名前で起動するように書き換えています。)


lsやcat tail grep mv cp などの基本的なコマンドはこのbash.exeを起動するだけで使うことができます。

ちなみに、Windowsにインストールされているコマンドもbash上から実行が可能です。

それ以外の基本的なコマンドは、以前紹介したchocolateryでインストールすれば、そのままbash上でも使えます。
なお、bash起動時のaliasの設定などは、LinuxやUnixと同様に、自分のユーザーフォルダに”.bashrc”ファイルを作成して記述すれば読み込んでくれます。

cmdやPowerShellがちょっと使いづらいなーと感じたときに、bashに切り替えるだけで、操作がかなりしやすくなって便利です。
LinuxerやUnixerなWindowsユーザーの皆さんは是非試してみてはいかがでしょうか?

  • この記事いいね! (0)
村上 著者:村上

【コマンド】フォルダ構造をファイル名まで含めてツリー階層で表示する方法

使用頻度が少ないとすぐに忘れてしまうので、覚え書きとしてまとめ。
今回は、フォルダ構造をツリー階層で表示してくれるコマンドプロンプトのコマンド「tree」についてです。

 

コマンドプロンプト上で「tree」コマンドを実行すると、下の画像のように、現在のディレクトリ以下のフォルダをツリー階層で表示します。

※なお、一部のディレクトリ名等は、念のため伏せさせていただきました。
が、これだけだと、ディレクトリ名までしか表示されません。

で、ディレクトリ内にあるフォルダの名前まで表示するためには、コマンドのオプションを使用します。
使うのは「/F」というオプションで、tree コマンドの後ろに付けて実行します。
実行結果は下記のとおりです。

ちゃんとファイル名まで表示されました。

オプションはこれ以外にも、「/A」という ASCII文字で表示するものもあります。
こちらを指定すると、下のように表示されます。

そこまで大きく変化はしていませんが…線の表現の仕方で何となく見やすい気がしますね。
今回はあまり変化がよく分かりませんでした。

 

以上、フォルダ構造をツリー階層で表示する方法でした。
linux でもコマンドがインストールしてあれば使えるので、Windows・Macの両方で使えます。
資料作成の時に便利そうなので、機会があったらどんどん活用してきたいと思います。

  • この記事いいね! (0)
takahashi 著者:takahashi

昔のMac OS(System 7)やWindows 3.xがブラウザ上で動作するサイト

僕は昔からちょっとしたOSマニア(といってもとりあえず一通り触りたいだけ)で、Windowsは勿論、MacOSとLinuxディストリのいくつか、ChromeOS、iOS、Andoridと現代のいろいろなOSは一通り触れてきました。
現行のどのOSでも、設計思想は違えど非常に使いやすいUI/UXをもつGUIを供えており、どれか一つのOSに振れたことがある人であれば、他のOSをさわっても基本操作はだいたい一目でわかるぐらいに簡単に操作できるようになっています。

各OSの設計思想の違いを感じることができるのが”OS弄り”の楽しさであるのですが、触っているうちにふと、”じゃあこのOSの黎明期はどんなUIだったのだろう”という興味がわいて来ることがあります。

そんなわけでいつか機会があれば触ってみたいなーと思っていたのですが、古いOSのインストールディスクはなかなか入手できる代物ではないですし、入手できたとしても、現行の物理マシンや仮想マシン上で動くのか、といった問題があり、なかなか動く形で触る機会というのはありませんでした。

そんな中、先日ネットサーフィンをしていたらこんな記事を発見。

懐かしのMac OS System 7をブラウザ上でエミュレートして再現できる「PCE.js」- Gigazine

Internet Archive、System 7のアプリを利用できるコレクションを公開 – スラド

なんとブラウザ上で古いOSを動作させることができるサイトがあるらしい!
早速触ってみました。

サイトを閲覧するや否や、Machintosh Plusをモチーフをした絵が表示され、絵の画面部分に、本当に昔のMacOS(System 7)が起動しました。


シャットダウンもリブートも行うことができます。

最初に出てくる”Kidpix”は…

お絵かきソフトでした。

ちなみに、Mac以外にもWindowsの旧バージョンも見ることができます。

さわっていて気づいたことは、MacOSは白黒の時代に販売されたOSでも、デザインはほぼ似ており、簡単ながらエフェクトもすでについていたことには驚きました。
また、Windows3.0も思った以上にカラフルで、操作しやすさを考えていることがよくわかりました。

今のOSといろいろな部分を比べてみると、それぞれのOSの特徴や違いは再発見できてとても面白いと感じました。
興味のある方は見てみてはいかがでしょうか。

  • この記事いいね! (0)
村上 著者:村上

【CSS】iOSで画面を滑らかにスクロールさせる方法

iOSの端末で縦に長い画面をスクロールさせた時に、慣性スクロールが効かず、途中でつっかえるような、ぎこちない動きになってしまったときの対処法です。
と言っても対処法というほど難しいことはなく、そのスクロールする要素に対して -webkit-overflow-scrolling プロパティを適用するだけです。
具体的には下記のとおりです。

<div class="scroll">
    <p>スクロールさせたい要素です</p>

    // 以下、要素の中身を記述
</div>
.scroll {
    height: 300px;
    overflow: scroll;
    -webkit-overflow-scrolling : touch;
}

重要なのは、4行目の -webkit-overflow-scrolling : touch; です。
これを指定することで、慣性スクロールが有効になります。

この -webkit-overflow-scrolling プロパティは、値に auto もしくは touch を指定します。
なお、デフォルト値は auto で、この場合は慣性スクロールが適用されません。

 

ということで、iOS で慣性スクロールを適用する方法でした。
この指定があるのとないのでは、実際に使っているときの感覚に大分違いがあるので、スマートフォンでの閲覧が考えられる場合は、記述しておいた方が無難だと思います。
スマートフォンでのスクロールがカクつくと、ここまでなのか!と意外なくらい、ストレスを感じました。

  • この記事いいね! (0)
村上 著者:村上

【Android Studio】「パッケージorg.apache.http.clientは存在しません」が発生した時の対処法

Androidアプリをビルドした時に遭遇したエラーその3。
ちなみに、これがラストです。

 

今回は、「エラー: パッケージorg.apache.http.clientは存在しません」というエラーです。
アプリ内で、org.apache.http.client をインポートしているのですが、こちらが存在しないためインポートに失敗して発生したエラーのようです。

なお、今回参考にさせていただいたサイトはこちら。

エラー: パッケージorg.apache.http.clientは存在しません への対策
http://www.what-a-day.net/entry/2016/12/11/124959

対処法はいたって簡単。
build.gradle に「useLibrary ‘org.apache.http.legacy’」を追加するだけです。

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    useLibrary 'org.apache.http.legacy' /* この行を追加 */

    defaultConfig {
        ……
    }
}

あとは普通にビルドすれば、他のエラーがない限り成功するはずです。

もしくは、下記のように記述してもOKとのこと。

dependencies {
    compile files('libs/org.apache.http.legacy.jar')  /* この行を追加 */
}

こちらの方法は試していないので、有効かどうかはわかりませんが、1つ目の方法を試したところ、ビルドに成功しました。

 

とても簡単ですが…以上、「パッケージorg.apache.http.clientは存在しません」エラーの対処法でした。
今回、様々なエラーに遭遇しましたが、すべて検索結果に簡単に引っかかるものばかりだったので、そこまで苦労せずに済みました。
もし、同じエラーにお困りの場合は、こちらの記事を参考にしていただければと思います。

  • この記事いいね! (0)
村上 著者:村上

【Android】「Could not find method runProguard() for arguments」エラーの対処法

今回は、Androidアプリのビルド時に遭遇したエラーについて。

【Android Studio】「Error:error: uncompiled XML file passed as argument. Must be compiled first into .flat file..」エラーの対処法
https://cpoint-lab.co.jp/【android-studio】「errorerror-uncompiled-xml-file-passed-as-argument-must-be-compiled-first-into-flat-file-」エラーの対処/

こちらで紹介したエラー同様、他のスタッフが少し前に開発したアプリをビルドした時に発生したエラーです。
こちらが遭遇したエラー2つ目で、実はもう一つあります。

 

で、こちらのエラーですが、対処法自体は、build.gradle ファイルの1行を書き換えるだけと、かなり簡単だったのですが、エラー文がかなり長くて、初見でちょっとビビってしまったので、今後驚かないようにまとめます。
まずは、エラー全文はこんな感じ。

Could not find method runProguard() for arguments [false] on BuildType_Decorated{name=release, debuggable=false, testCoverageEnabled=false, jniDebuggable=false, pseudoLocalesEnabled=false, renderscriptDebuggable=false, renderscriptOptimLevel=3, minifyEnabled=false, zipAlignEnabled=true, signingConfig=null, embedMicroApp=true, mBuildConfigFields={}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}} of type com.android.build.gradle.internal.dsl.BuildType.

name=release, debuggable=false, testCoverageEnabled=false …など、等式がずらずら並んでいたので、これはややこしいのでは!?と思い込んでしまったんですよね。

で、対処法ですが、build.grade ファイルに下記の1文が記述されているかと思います。

runProguard false

これを、下記に書き換えるだけ。

minifyEnabled false

あとは、いつも通りビルドするだけです。

 

エラー文にビビりましたが、思ったよりも簡単に直せたので一安心でした。
同じエラーにお困りの方は、是非参考にしてください。

  • この記事いいね! (0)
村上 著者:村上

【Android】Buttonのデザインを変更する方法

最近 Android の開発ネタばかりで申し訳ありません…が、今日も性懲りもなく Android について!
今回は、ボタンのデザインを変更する方法です。
デフォルトのデザインって、グレーに角ばった形をしていて、かなり味気ないというか素っ気ないデザインなので、これを変更していきます。

参考にさせていただいたサイトはこちら。

Android UI基本 Buttonをカスタマイズする
http://tech.pjin.jp/blog/2016/02/09/android ui基本-buttonをカスタマイズする/

 

さて、今回のコードで作成できるボタンのデザインは下記の2つです。

まず、ボタンのデザインを指定するxmlファイルを、drawable フォルダ以下に作成します。
左側の、背景色が水色の丸角ボタンのコードはこちら。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="#4cb4fa"/>
    <corners android:radius="8dp"/>
</shape>

ファイル名は、entry_button.xml としています。

右側の、背景色が白色で枠線が水色の丸角ボタンのコードはこちら。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="#FFF"/>
    <corners android:radius="8dp"/>
    <stroke android:color="#4cb4fa" android:width="1dp"/>
</shape>

こちらのファイル名は、entry_button_noactive.xml としました。

で、ボタン自体は下記のように指定します。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="#FFF">
    <Button android:layout_width="0dp"
        android:layout_height="35dp"
        android:layout_weight="1"
        android:text="公開"
        android:textColor="#FFF"
        android:background="@drawable/entry_button"
        android:layout_margin="3dp"/>
    <Button
        android:layout_width="0dp"
        android:layout_height="35dp"
        android:layout_weight="1"
        android:text="下書き"
        android:background="@drawable/entry_button_noactive"
        android:layout_margin="3dp"/>
</LinearLayout>

重要なのは、12、19行目android:background を指定している箇所です。
ここで、先程作成した xmlファイルを指定すると、xmlファイルに記述したデザインがボタンに反映されます。
レイアウトファイルがごちゃごちゃしないので、分かりやすくていいですね。
xmlファイルの記述については、ググれば色々出てくるので、難しくはないはず。

 

以上、ボタンのデザインの変更方法でした。
味気ないデフォルトのデザインや、背景色変えるだけよりも、ぐっとお洒落になるので、Androidアプリを開発している方は是非取り入れてみてはいかがでしょうか。

  • この記事いいね! (0)
村上 著者:村上

【Android】リリース版アプリをビルドするときにkey aliasを忘れた場合の対処法

会社の人に教えていただいた方法ですが、これは覚えておかねば!と思ってまとめ。
Androidアプリをリリースする際に、リリース版APKのビルドを行いますが、その時に入力する key alias という項目を忘れてしまったときの対処法です。
こちらは、Android Studio のメニューバーの Build > Generate Signed APK をクリックしたときに表示される下記のウィンドウの入力欄に入力する項目です。

教えてもらった記事はこちら。

もしandroid.keysotreのkey aliasを忘れてしまったなら – Qiita
https://qiita.com/mmusasabi/items/e0dbd1fb01c0410f791a

なお、こちらの投稿には、パスワードを忘れてしまった場合の対処法へのリンクも貼ってありますので、こちらも是非ご参考にしていただければと思います。

 

さて、その方法ですが、コマンドプロンプトなどのツールを起動して、下記のコマンドを実行するだけ!

keytool -list -keystore <アプリのキーストアのパス>

こちらを実行すると、キーストアのパスワードを聞かれるので、パスワードを入力してエンターキーを押します。

実際の実行画面はこんな感じです。

ちょっとアレかな?と思われるところは白塗りにしましたが、重要なのは、赤く塗りつぶした箇所です。
正常に動作すれば、こちらに key alias が表示されます。
あとは、こちらを使って、リリース版ビルドを実行して完了です。

 

他の人が開発&リリースしたアプリだったので、パスワードしかわからず、どうしよう…となっていたので非常に助けられた記事でした。
同じ事で悩んでいる方がいらっしゃれば、是非参考にしていただければと思います。

  • この記事いいね! (0)