sicaworks blog

制作したiOSアプリやswiftについて

サービス残業はアプリで解決できるから -ブラック企業対策

サービス残業、してますか?
サービス残業は完全に違法です。なのになぜそのようなブラック企業の言うことに従っているのでしょう。ほとんどの場合は労働者側の立場が弱いからです。また、いざ請求するとなっても争いごとになるためそれだけの気力が必要で、どうしてもそこまで踏み込めないということも多いのではないでしょうか。こういった問題はiPhoneのアプリを使って解決することができます。

残業代を請求するためには

長時間労働や過労死が話題になることが多くなってきたこともあり、残業についての情報も多くなってきました。ネットで検索をすると、労働時間に関する法律や残業代支払いのルールをすぐに調べることができます。大量の情報がありますが、そのほとんどの記事の内容は同じです。つまり、労働基準法にある残業代等のルールは非常にシンプルで、そして残業代をもらうにはどうしたらいいかという問いに対する答えは「証拠を残して請求する」これだけです。

残業をした証拠になるもの

残業をどのくらいの時間したか記録しておくことは残業代を請求する上でもっとも大切なことです。争いになった場合にこれが証拠となり勝負が決まります。ではどういったものが証拠となるのでしょうか?まずは一般的な勤務上作成される勤務記録がもっともわかりやすい証拠となります。これをコピーして保管しておけば証拠として使うことができます。

こういった勤務記録は基本的には会社側が使うために作られるもののため、労働者側がこれをコピーしておくことは難しい場合もあります。そういった場合には労働者側が自分自身で記録を作成しておけばこれが証拠として採用されます。会社が記録したものしか証拠にならないと思うかもしれませんが、実は労働者側が作成してもそれが妥当なものであれば問題ありません。この点があまりよく知られていないため、どうやって証拠を集めたらいいのかがわからずそこで立ち止まってしまう方が多いのですが、自分で作ればいいのです。毎日自分で勤務時間をメモしてもいいのですがこれだけでは証拠としては少し弱いですので、位置情報と時間を記録するアプリを使えばより良い客観的な記録を残すことができます。

残業記録アプリをお勧めする理由

自分で証拠を作ることができる
会社側が作成した記録は、悪質な場合には書き換えられてしまうこともあります。自分自身で記録を残すことでより多くの証拠を作ることができ、残業代を請求した際に有利になります。また、記録を保管していることを会社に悟られません。自分のアプリ内だけで記録を作れるのでこっそり会社のデータをコピーしたりする必要はありません。

自動的に記録される
勤務体系とアプリの記録システムがうまく合えば、設定さえしておけばなにもしなくてもアプリが勝手に作動し記録を残してくれます。会社のタイムカードと同じように、その時に打刻しなければあとから追加することはできませんので自動で記録されることは安心につながります。また、残業代の請求を強く意識していなくてもとりあえず記録を残しておくことでのちのち役に立つことがあるかもしれません。

基本無料、必要なときだけ有料
記録をつけるのは無料です。ダウンロードして設定しておくだけなので損することがありません。もし残業代を請求するということになったらそのときに必要な分だけ支払えば大丈夫です。一ヶ月分の記録は最低価格(現在120円)に設定されており、それで1時間分でも残業代が支払われれば十分元が取れます。

証拠があれば負けない

残業代を請求するのにも勇気が必要だと思いますが、それは請求したところで本当に払ってくれるか不安だからではないでしょうか?残業代を払わないことは違法であり、毎月数万円が盗まれているのと同じことです。また、一般的に残業はどこの会社でも行われており、残業代が支払われていることがほとんどでそういうものだと思われているかもしれませんが、厳密に言えば残業をさせること自体がすでに違法です。例えば、月に10時間くらいの残業なら少ないほうだと思うかもしれませんが、1時間でも違法です。労働者側との協定がなければ残業させることはできません。それが法律です。ですので、ちゃんとした証拠があれば負けることはありません。

また、そのような請求をすると会社から変な目でみられるのではという不安もあると思います。今後その会社で働きづらくなったら嫌ですよね。ですが、あなたは労働者の残業代を払わないような会社で働き続けるのですか?おそらくそういった会社ではどんどん人が辞めていっているのではないでしょうか。そのような会社に嫌われたからといって失うものはないでしょう。残した証拠は退職したあとでも2年間有効ですのでそれを見越して今から記録を残しておくことも一つの手です。退職したあとに労働基準監督署を通して残業代を請求できます。どちらにしろ、記録を残しておいて損することはなにもありません。

残業時間を記録するiPhoneアプリ、80h

こういったサービス残業の問題を解決するために80h(はちじゅうえいち)というiPhoneアプリを作りました。サービス残業や過労が大きな問題になっているのにもかかわらずこの解決策があまりうまくいっていないように思えたからです。この問題の解決はまず労働者側が記録を残すことで前進します。こういったアプリを労働者の多くが当たり前のように使うようになればサービス残業は解消されるでしょう。このアプリは無料で、立ち上げなくても勝手に記録が残るのでダウンロードしておいても損をすることがありません。ネットに通信もしないのでデータが抜きとられたりといった変なことも起こりません。ただ単にサービス残業の問題を解決するためだけに作りました。もし残業時間について少しでも不満に思うことがあるのであれば是非ダウンロードしておいて欲しいと思います。


twitter公式fabricでjsonからツイートのデータを取り込む(swift)

まったくの初心者なのですが、一人こつこつとiOSアプリを作っています。いまはツイッターを使ったアプリを作成し始めたところで、ツイッターの扱い方をあれこれと試しています。


アプリなどでツイッターを扱うにはfabricというtwitter公式のクライアントが用意されています。fabricの導入方法などは他のブログなどでよく紹介されていて特にむつかしいものでもありません。
Firebase


今回これを使っていてjsonからツイートを取り出す部分でハマり、解決するのに時間がかかったのでそのあたりまでを残しておきたいと思います。

検索の条件をつけてjsonを取得する

twitterのsearchAPIを使って、様々なパラメータをつけてリクエストを送るとjsonの形でツイートを取得することができます。全体的には次のような感じで、searchAPIにリクエストを送り、jsonで受け取り、jsonをTWTRTweetクラスのArrayに格納しています。

let client = TWTRAPIClient()
let statusesShowEndpoint = "https://api.twitter.com/1.1/search/tweets.json"
let params = ["q": "天気", "lang": "ja", "count": "3"]
var clientError : NSError?

let request = client.URLRequestWithMethod("GET", URL: statusesShowEndpoint, parameters: params, error: &clientError)
client.sendTwitterRequest(request) { (response, data, connectionError) -> Void in
    if connectionError != nil {
        print("Error: \(connectionError)")
    }
    
    do {
        let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as! NSDictionary
        print("json: \(json)")
        if let statuses = json["statuses"] as? NSArray {
            let twArray = TWTRTweet.tweetsWithJSONArray(statuses as [AnyObject]) as! [TWTRTweet]
            print(twArray)
        }
    } catch let jsonError as NSError {
        print("json error: \(jsonError.localizedDescription)")
    }
}


パラメータはDictionaryになっていて、ここに必要なものを追加します。

let params = ["q": "天気", "lang": "ja", "count": "3"]

API reference index | Docs | Twitter Developer Platform


次の、jsonからのデータの取り出しでハマりました。

//  間違い
let json = NSJSONSerialization.JSONObjectWithData(data!, options: []) as! NSDictionary
let twArray = TWTRTweet.tweetsWithJSONArray(json) as! [TWTRTweet]

//  正解
let json = NSJSONSerialization.JSONObjectWithData(data!, options: []) as! NSDictionary
let twArray = TWTRTweet.tweetsWithJSONArray(json["statuses"] as! [AnyObject]) as! [TWTRTweet]

他のブログだと間違い例のような感じでjsonからツイートを格納していたのですが、ここがうまくいきませんでした。searchAPIで返ってくるjsonはDictionaryタイプのものでArrayタイプではありませんでした。それをそのままtweetsWithJSONArrayに入れていたのでうまくいかずエラーがでまくったのでした。


原因は簡単で、jsonの構造をよく理解していなかったからで、なんと表現したらいいかわかりませんがツイートがArrayとして表示されている部分(json["statuses"])をまず取り出してからtweetsWithJSONArrayにつっこめばよかっただけでした。ただ、なぜかこの部分が書かれていないブログがほとんどで、twitterの公式ドキュメントにもそのような記載はありませんでした。


各ツイートはTWTRTweetクラスに格納されます。このクラスはTwitterKit.frameworkにあらかじめ用意されていたもので、ツイートに関する様々なプロパティが設定されています。あとはこのツイートが並んだArrayをTableViewなどにつっこんだりして表示していくわけです。

はてなブログ編集画面でスクロールできなくなります

ブログを書いている途中なのですが、編集画面がスクロールできなくて困っています。

 

編集見たままのモードで入力した文字を選択すると、入力範囲ではなく画面全体が勝手に下にスクロールします。公開する、とか下書き保存する、のボタンあたりが真ん中に見えて、入力していた部分がいじれなくなります。元のように戻そうと思ってもこのページの右にスクロールバーが表示されておらず、スクロールできません。

 

スクロールできないので、編集サイドバーの下側を見ることができずgoogleフォト貼り付けくらいまでしか選択できません。

 

仕方がないので下書き保存して再度編集するというやり方にして我慢していましたが記事が長くなってくると厳しいです。なにかいい解決方法はないでしょうか。

 

たぶんこれと似たような感じかなと思います。

staff.hatenablog.com

 

使っているのは、

OSX 10.10.5

safari 9.0.3

です。