masarufuruyaのブログ

毎日学んだ知見をアウトプットするブログ

人事と労務の違いって?

最近、労務関係の仕事に触れる機会が多いです。 よく聞きはしますがイマイチよくわかっていなかったので、意味をまとめました。

人事と労務

人事も労務も会社の「人」に関わる業務。 人事は「社員個人」を対象としており、労務は「会社全体」を対象としている。

類似職種として「総務」があるが、これは社内の備品管理や社内環境整備、 社内イベントの企画などを行う職種。

人事の仕事

  • 人員配置
  • 採用
  • 人材教育
  • 評価制度の策定

労務の仕事

  • 給与計算・勤怠管理
  • 社会保険手続き
  • 健康診断の対応
  • その他福利厚生に関する手続き

人事も労務もひっくるめてHR(Human Resource)Techだなぁとか思ってましたが、 ちゃんと調べると様々な領域に分かれていて、とても興味深い。

ReactNativeの実機ビルドでunable to load script from assets index.android.bundleになる時の対処

以下手順でOK

mkdir android/app/src/main/assets

react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

再ビルド実行

[Android] Building release APK with react-native bundle · Issue #2743 · facebook/react-native https://github.com/facebook/react-native/issues/2743

リリース用のAPKの時にJSファイルをbundleしてくれないgradleの不具合? 今の所、自分でbundleコマンドを実行しないといけないみたい。

自分の場合はこれで動きました。

MacでAndroidの実機ビルドする時の最低限の手順

  • 実機のOSバージョンと同じAndroid SDKをインストール
  • Windowsの場合のみGoogle USB Driverが必要
  • 実機側のUSBデバッグ設定を有効にする
  • 接続した実機をクリックしてAndroid Studio側からビルドボタンをクリック

ReactNativeのbuild.gradleって何?

build.gradle

Gradle

Groovy

bunild.gradleの中身

  • 以下がReactNativeの初期状態のbuild.gradle
  • buildscriptブロック内のclasspathに外部のプラグインのjarファイルを指定することでプロジェクト内に追加することができる
  • classpath 'com.google.gms:google-services:3.0.0'Googleのサービス(Firebase等)をAndroidアプリ内で使うために必要なプラグイン
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        classpath 'com.google.gms:google-services:3.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
}
  • classpath追加後にapply plugin: xxと書くことで見つけた外部プラグインを実際に適用し使うことが出来る

Golangでネストした構造体を初期化する方法

次のようにネストした構造体が存在する場合に、 Golangでは初期化の方法が非常に面倒くさい。

type User struct {
    ID        int
    Name  string
    Account struct {
      Password string
      AccessToken string
    }
}
func main() {
    user := User{
      ID: 1,
      Name: "Masaru",
      Account: struct{
          Password string
          AccessToken string
      }{
          Password: "hogehoge",
        AccessToken: "fugafuga",
      },
    }
    fmt.Println(user)
}

こんな感じでネストした構造体の構造と値を別々で書かないと初期化出来ない。 最初結構嵌ったので、メモ。

ReactNativeでAndroidのシミュレーターを起動する

Androidの場合は事前にAndroid Virtual Deviceを追加しておく必要がある。

AVDマネージャーを起動する

Android Studioを起動して[Tools] > [Android] > [AVD Manger]

gyazo.com

AVDを追加して起動する

端末は色んな種類がありますが、自分はNexus 5 API23を使ってます。 追加したらActionsから起動ボタンを押します。

gyazo.com

index.android.jsを用意する

こんな感じでAndroid用の起動ファイルを用意します。 IOSと記述は全く同じでOK

import { AppRegistry } from 'react-native';
import App from './src/app';

AppRegistry.registerComponent('sample', () => App);

React-Nativeのシミュレーターを実行する

AVDを起動した状態で react-native run-androidを実行します。 これでうまくいくはずです。

IOSでAdd the Push Notifications feature to your App IDが出る

GeneralのBundle Identifierが被っているのが問題でした。

名前を変えたら解消。