並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 36 件 / 36件

新着順 人気順

potatotipsの検索結果1 - 36 件 / 36件

  • iPhoneでFeliCaを読み取ってみた

    iPhoneでFeliCaを読み取ってみた #potatotips #64 作ったライブラリ https://github.com/tattn/NFCReader

      iPhoneでFeliCaを読み取ってみた
    • Flutterアプリ開発高速化Tips(コーディング編)

      potatotips 71での発表資料です。 「Flutterアプリ開発高速化Tips(コーディング編)」 #potatotips #flutterjp

        Flutterアプリ開発高速化Tips(コーディング編)
      • iOS 14 からの Universal Links

        [Online] potatotips #72 iOS/Android開発Tips共有会 の発表資料です。 https://potatotips.connpass.com/event/194575/

          iOS 14 からの Universal Links
        • ダークモード対応で注意すべきこと

          #potatotips #65 バグの再現リポジトリ https://github.com/tattn/WeirdDarkMode-iOS12 Qiitaにこの発表をテキスト化したものを投稿しました https://qiita.com/tattn/items/c56b15ed8d1cea26a955 VRの体を手に入れました https://twitter.com/tanakasan2525/status/1177736175894908928

            ダークモード対応で注意すべきこと
          • iOS 13/iPad OS 13に向けて対応した事 #ios13 #xcode11 - Tech Blog

            iOSDCの登壇が終わってホッとしているかっくんです。 先日リリースされたFamm 4.0.0 にてiOS 13/iPad OS 13向けの対応を行いました。 この記事ではどの様にして対応を進めたのかを共有します。 社内調整 WWDC 2019が終わり帰国してすぐに社内向けの調整を行いました。 ざっくりいうと「8月いっぱいはiOS 13/iPad OS 13向けの対応を行いたいのでiOSチームはよほど緊急対応が無い限りは他の案件はストップしたい」という事を伝え了承してもらいました。 恐らく、何よりもこの部分が難しい会社も多いだろうことは想像に容易いですが、快諾してくれたPO及び社内のメンバーには感謝しています。 新機能 Dark Mode iOSDCなどの登壇を見て頂いた方もいるかもしれませんが、WWDC 2019前1後2で僕はとてもDark Modeを推進していました。 さすがにこの状態

              iOS 13/iPad OS 13に向けて対応した事 #ios13 #xcode11 - Tech Blog
            • in-app updates on Android - Overview & Fitfalls - - Speaker Deck

              Transcript in-app updates on Android - Overview & Fitfalls - potatotips #66 (2019/11/11) @kurun_pan • potatotipsࢀՃ2ճ໨ʢલճͷ#65͕ॳࢀՃʣ • ຊۀ ‣ Linux Software Engineer ‣ ϑϧελοΫΤϯδχΞ ✓ Linux kernel, Driver, Middleware, Applicationͳ ͲඞཁͳΒԿͰ΋ ✓ ࠷ۙ͸GUIϑϨʔϜϫʔΫؔ࿈ • ϓϥΠϕʔτ ‣ ओʹAndroidΞϓϦΛ։ൃ Self-introduction @kurun_pan @Kurun-pan • In-app updates overview • Updates flow type • Sample code • Pitfall points • Summ

                in-app updates on Android - Overview & Fitfalls - - Speaker Deck
              • 株式会社アンドパッドでpotatotips #71を開催しました! - ANDPAD Tech Blog

                はじめに こんにちはCDOの山下です。 potatotipsは、毎月100人くらい申し込みがあるモバイルアプリのエンジニアにとってはおなじみの勉強会です。 私も個人的に5年ほど前から参加していて、当時アンドパッドは数人のスタートアップだったのでいつか自社開催できる オフィスを構えたら主催しようと夢見てましたが、今回オンラインながら実現したので個人的には胸熱でした。 コロナの不安がなくなったら是非オフライン開催でも主催したいと思っています。 ※potatotipsは71回開催されているアプリエンジニアのためのtips共有勉強会です。 potatotips.connpass.com 発表内容まとめ 発表のスライドや内容を簡単に振り返っていきたいと思います。 ライブラリを作って5年たったので振り返る ライブラリを作って5年たったので振り返る from Daisuke Yamashita pota

                  株式会社アンドパッドでpotatotips #71を開催しました! - ANDPAD Tech Blog
                • Zoomウェビナー勉強会開催指南書 #Zoom #オンライン勉強会 - Tech Blog

                  こんにちは。オンライン勉強会主催の実績を解除した akatsuki です。先日potatotips #69を弊社主催でオンライン開催したので、その流れと知見を共有したいと思います。 ここではpotatotips本体の話はしません。この勉強会自体について知りたい方は以下のページをご覧ください。 ブログ:potatotips #69 に参加しました (iOS/Androidブログまとめ) #potatotips by kumamo_toneさん Togetter:2020/4/27 #potatotips (iOS/Android開発Tips共有会) 第69回 by koogawaさん Zoomチャットログ:potatotips #69 チャット一覧 実施形式 Zoomのウェビナー機能を使いました。ウェビナーには以下の特徴があります。 Q&A機能が使える ロールはホスト、パネリスト、出席者 「

                    Zoomウェビナー勉強会開催指南書 #Zoom #オンライン勉強会 - Tech Blog
                  • Firebase Remote Configの運用で知ったこと・知っておくと良いこと / Things I Learned from Operation of Firebase Remote Config

                    2019年6月18日に合同会社DMMで行われたpotatotips #62で発表した資料です。 Firebase Remote Configを実装・運用した時に気づいたTIPSについて解説しました。 Poiboy(ポイボーイ) 出会い探しマッチングアプリ https://poiboy.jp/ Firebase Remote Config (公式) https://firebase.google.com/docs/remote-config?hl=ja Firebase Remote Config を使ってA/Bテストをやってみよう - PSYENCE:MEDIA https://tech.recruit-mp.co.jp/mobile/post-14940/ sgr-ksmt/Lobster - 🦐 Type-safe Firebase-RemoteConfig helper libra

                      Firebase Remote Configの運用で知ったこと・知っておくと良いこと / Things I Learned from Operation of Firebase Remote Config
                    • iPhone で FeliCa を読み取るライブラリを作りました - Qiita

                      この記事は potatotips #64 で発表した内容をテキスト化したものです。 今から発表する資料ですー iPhoneでFeliCaを読み取ってみたhttps://t.co/kX4j3SZ6QL 作ったライブラリhttps://t.co/gnz0eoNqcf#potatotips — たなたつ (@tanakasan2525) August 27, 2019 TL;DR サクッと FeliCa の IC カードを読み取れるライブラリを作ったよ。 今のところ下記のカードに対応してるよ。 Suica, Pasmo, Kitaca, ICOCA, TOICA、manaca、PiTaPa、nimoca、SUGOCA、はやかけん nanaco、Edy、WAON カスタムタグ iOS 13 から FeliCa の読み書きができるように WWDC 19 で CoreNFC で FeliCa が読み書

                        iPhone で FeliCa を読み取るライブラリを作りました - Qiita
                      • ポケモンで学ぶiOS 16弾丸ツアー 🚅

                        potatotips #80 [potatotips #80 iOS/Android開発Tips共有会 - connpass](https://potatotips.connpass.com/event/267635/)

                          ポケモンで学ぶiOS 16弾丸ツアー 🚅
                        • iOS 14 の Universal Links の変更点 | Wantedly Engineer Blog

                          こんにちは、Wantedly で iOS エンジニアをしている樫原 (@kashihararara) です。 この記事は、2020年12月22日 にオンライン開催された potatotips#72 で発表した「iOS 14 からの Universal Links」を記事にしたものです。 [事の発端] QA 環境で Universal Links が動かない!とある日のこと、QAさんからバグの報告がありました。バグの内容を聞いてみると「QA版アプリの環境だけ、すべての Universal Links が効かずアプリが立ち上がらない」というものでした。 更に詳しく調査をすると、iOS 14 かつ QA版アプリ という条件でのみ Universal Links が動いていないということが判明しました。 更に上記の条件でアプリインストール時の通信をProxyManで確認してみます。すると、http

                            iOS 14 の Universal Links の変更点 | Wantedly Engineer Blog
                          • モバイルアプリのリストUIにおける
理想的なState表示について / The ideal state display in a mobile app list UI

                            [Online] potatotips #76 iOS/Android開発Tips共有会 https://potatotips.connpass.com/event/224395/

                              モバイルアプリのリストUIにおける
理想的なState表示について / The ideal state display in a mobile app list UI
                            • LLDBを活用したデザインチェック

                              potatotips #74 (2021/6/23) GitHub: https://github.com/Scior/LLDBVisualDebug

                                LLDBを活用したデザインチェック
                              • SwiftUIのViewで条件によってViewを出し分ける方法 - The Pragmatic Ball boy

                                potatotips #64でLTした内容です。 SwiftUIのViewで条件によってViewをだしわけたいことがたまにあるかと思います。 SwiftUIでこのように条件によってViewを出し分けるようなコードを書いてみます。 var body: some View { if imageName.isEmpty { return Text("no image") } else { return Image(imageName) } } そうするとこのようなコンパイルエラーになってしまいます。 ! Function declares an opaque return type, but the return statements in its body do not have matching underlying types なぜかというとbodyの戻り値の型がOpaque Result

                                  SwiftUIのViewで条件によってViewを出し分ける方法 - The Pragmatic Ball boy
                                • DIKitで人間がクラス間の依存関係を解決するのを終わらせる #GameWith #TechWith - GameWith Developer Blog

                                  こんにちは、つい最近入社したiOSエンジニアのみなみ(@yuuxeno)です。 DIKitとは、AndroidのDaggerの影響を受けて作られた、iOSアプリ開発(Swift)でも使える、コード生成型のDIライブラリです。コード生成でDIを実現する仕組みは他の言語にも存在し、例えばGo言語にはWireというツールがあります。 先日、potatotips #64において、DIKitについての発表(下のスライド参考)をしました。 今回は、 DIKitとは何なのか?コード生成でDIを実現するメリットとは?などについて、発表した時とは違う話の構成で、ブログ記事で紹介したいと思います。 はじめに 人間が依存関係の解決をすることで起こること DIできない コードの見通しが悪い 依存関係を解決する処理を人間が管理する必要 DIKitが可能にすること DIKitとは? DIKitでできる 人間の代わりに

                                    DIKitで人間がクラス間の依存関係を解決するのを終わらせる #GameWith #TechWith - GameWith Developer Blog
                                  • SwiftPMのプラグイン機能を活用する / SwiftPM BuildTool Plugins

                                    SwiftPMのプラグイン機能を活用する [Online] potatotips #77 iOS/Android開発Tips共有会 - connpass https://potatotips.connpass.com/event/236238/

                                      SwiftPMのプラグイン機能を活用する / SwiftPM BuildTool Plugins
                                    • ポテチうすしお3選「今金男爵」の味を徹底比較!? [カルビー&湖池屋ポテトチップス]を検証 - 思い立ったらブログ書こう。

                                      こんにちは。ポンコツOJです。 先日記事にした高級ポテトチップスが無事届いた。 ponko2-oyaji.hatenablog.com このまま普通に食べちゃおうかと思ったのだけれど、年に一度だけなわけだし、次また買うかも分からない。 賞味すれば、きっとうまいかもしれないが、どううまいのか、どれくらいうまいのか伝わらない。ならば味比べしてみようじゃないかと思いたった。 ポテトチップスの比較検証の方法は? ポテチ比較の審査項目 ポテチ比較の評価方法 審査員の紹介 ポテトチップス「うすしお」の食べくらべ検証結果 1.カルビーポテトチップス「うすしお」 2.湖池屋ポテトチップス「うすしお」 3.湖池屋ポテトチップス「今金男しゃく・うすしお」 総評・うすしお味ポテトチップス3品徹底比較 バラツキが出るかと思ったが 今金男しゃくだけは別だった 気になるカロリーについて まとめ 「今金」の名は伊達じゃ

                                        ポテチうすしお3選「今金男爵」の味を徹底比較!? [カルビー&湖池屋ポテトチップス]を検証 - 思い立ったらブログ書こう。
                                      • DeNAのエンジニアと一緒に技術勉強会を開催しませんか? | BLOG - DeNA Engineering

                                        はじめに こんにちは!エンジニアリング室の太田です。 DeNA では「DeNA TECH STUDIO」という、世の中の技術向上に貢献する勉強会やイベントを積極的に支援することを目的とし、エンジニアリングに関する勉強会サポートプログラムを運営しています。 2017年9月から始動し、数多くの勉強会やイベントをサポートしてきました。今回はその「DeNA TECH STUDIO」について少しお話したいと思います。 DeNA TECH STUDIO とは アウトプットしたい技術ネタがあるけど、 発表するための場所がない、、、 そもそも準備するまでの手間がかなり、、、 というようなことが億劫で、情報発信したいのにできないことはよくあると思います。 そのような課題を解決して「外にもっと発信したい!」というWILLに対して、それをより実現しやすくするための制度として開始したプログラムです。 DeNAのエ

                                          DeNAのエンジニアと一緒に技術勉強会を開催しませんか? | BLOG - DeNA Engineering
                                        • ダークモード対応で今注意すべきこと - Qiita

                                          この記事は potatotips #65 で発表した内容を一部テキスト化したものです。 ダークモード対応で注意すべきことの発表資料です。 Macをダークモードにして作業している方必見ですhttps://t.co/oZsGhNqvg7#potatotips — たなたつ (@tanakasan2525) October 1, 2019 2019/10/10追記 Xcode 11.2 Beta版で確認したところ、こちらの問題は直っているようでした! https://developer.apple.com/documentation/xcode_release_notes/xcode_11_2_beta_release_notes The host system’s appearance no longer affects which fallback color is archived for

                                            ダークモード対応で今注意すべきこと - Qiita
                                          • Bitrise を触ってみた所感 - コネヒト開発者ブログ

                                            こんにちは!アプリケーションエンジニアのあぼです。 コネヒトでは iOS アプリの CI ツールとして Travis CI を使っていましたが、先日プランが変わったこともあり、定額の Bitrise に移行しました。元々 fastlane で自動化していたので、Bitrise ではキャッシングなどのワークフローを組み立ててメインの処理は fastlane のコマンドに任せるという感じで動かしています。ですので移行自体もそこまで苦ではなかったなという印象です。 今回ははじめて Bitrise を触ったので自分の所感を簡単に書いていこうと思います。コネヒト Advent Calendar 2020の記事です。 導入初期の色々試したいときに GUI でガリガリいじれる Bitrise はワークフローの設定などが書かれた bitrise.yml を Bitrise.io で管理する方法とリポジトリ

                                              Bitrise を触ってみた所感 - コネヒト開発者ブログ
                                            • 「UIレンダリングの仕組みを知る」という話をしました #potatotips - usami-kの日記

                                              potatotips #75 に参加しました。 たまたま、iOS の登壇枠がひとつ空いたのを見かけたので、急いで準備して発表してみました。 github.com speakerdeck.com 昨年12月に Apple が公開した Tech Talks の動画の内容を紹介しました。 動画3つ分だったので結構内容が多くて、5分にまとめるのは無謀な気もしましたが、どうにか切り詰めて5分におさまってホッとしました。 Render Loop 関連の3つの動画、結構おもしろいと思うので、興味を持ってくれる人がいたら嬉しいです。 Xcode のプロファイリングの機能は優秀だと思います。View Debugger もすごい。 potatotips はそのうち登壇してみたいと思っていたので、初めて登壇できて嬉しいです。 遠方からでも参加できたのは、オンライン開催のおかげです。 それにしても、第75回ってす

                                                「UIレンダリングの仕組みを知る」という話をしました #potatotips - usami-kの日記
                                              • Language and Region

                                                potatotips-77

                                                  Language and Region
                                                • ML Kit (Auto ML Vision Edge)で写真から家族を検出する #firebase #mlkit #automl #android - Tech Blog

                                                  こんにちは。世界では異常事態が続き、フルリモートとなった今、猫とペットボトルのキャップでサッカーをして遊ぶことだけが生きがいになりました。AndroidエンジニアのTsutouです。 子供やペットの写真を、手軽にアップロードしてもらいたい 弊社のアプリ、Fammは家族アルバムアプリなので、写真/動画アップロード機能の対象となる写真は子供、ペットの写真になります。 しかし、アップロード画面を表示した時、大抵は料理だったり、スクショだったり、風景だったり、データフォルダには色々な画像がありますね。 そこで、子供やペットの写真をもっと手軽にアップロードしてもらいたい、との思いからiOS版ではCore MLを使ってアップロードレコメンドが実現されています。 techblog.timers-inc.com 今回は、Androidでも実装する運びとなり、その際にML Kitを使用した際の事例になります

                                                    ML Kit (Auto ML Vision Edge)で写真から家族を検出する #firebase #mlkit #automl #android - Tech Blog
                                                  • iOS 14からのアプリ内課金

                                                    #potatotips #71での発表資料です。 https://potatotips.connpass.com/event/189012/ より詳しい内容はこちら https://zenn.dev/tattn/books/ios14-in-app-purchase おすすめ: iOS 14対応で気をつけるべきこと https://zenn.dev/tattn/articles/40d1e53cc63d381a3ac5 Twitter: https://twitter.com/tanakasan2525

                                                      iOS 14からのアプリ内課金
                                                    • iOSアプリでLine Heightを
設定するときに注意したいこと / Things to keep in mind when setting Line Height in your iOS app

                                                      [Online] potatotips #73 iOS/Android開発Tips共有会 https://potatotips.connpass.com/event/202810/

                                                        iOSアプリでLine Heightを
設定するときに注意したいこと / Things to keep in mind when setting Line Height in your iOS app
                                                      • Kotlin で Either が欲しくなったときに考えること - Giftmall Inside Blog

                                                        Kotlinは表現力が豊かな言語で標準ライブラリも充実しており、モダンな機能を多数備えています。現在も活発に開発が進んでいて他の言語から様々な概念を取り入れることも頻繁にあります。そんなKotlinですが、他の言語にあってKotlinにはないものも少なからずあります。今回はEitherを例にあげ、KotlinでEitherを表現する方法について考えてみます。 異なる2つの型のいずれかの型を返り値とする関数を作りたい はじめに、次のような2つの異なる型のいずれかを返す関数を考えてみます。 data class Foo(val name: String) data class Bar(val description: String) fun getSomething() = if (flag) { Foo("foo") } else { Bar("bar") } この getSomething

                                                          Kotlin で Either が欲しくなったときに考えること - Giftmall Inside Blog
                                                        • [potatotips #70] license-list-pluginを使ってOSSライセンス画面を自動生成する / license-list-plugin

                                                          オンライン開催されたpotatotips #70で発表した資料です。 https://potatotips.connpass.com/event/178565/

                                                            [potatotips #70] license-list-pluginを使ってOSSライセンス画面を自動生成する / license-list-plugin
                                                          • AppBrew 主催 potatotips #82 開催レポート - AppBrew Tech Blog

                                                            はじめに AppBrew でエンジニアをしている akkey(あっきー)です。 iOS, Android アプリ開発者向けの勉強会で、今回が82回目となる potatotips を弊社AppBrewが主催させていただきました。 6/20に開催され、現地参加25名、オンライン最大同時接続数56viewと大盛況となりました!!このレポートでは各登壇者の発表をご紹介するとともに、勉強会全体を振り返ります。 potatotips.connpass.com ライトニングトーク 今回の勉強会ではライトニングトーク(通称LT)形式(1人5分間)で、iOSアプリに関して5名の方、Androidアプリに関して5名の方に発表していただきました。 ここから、ご登壇いただいた内容を紹介します。発表スライドと合わせて YouTube Live のアーカイブも是非ご覧ください! www.youtube.com Qui

                                                              AppBrew 主催 potatotips #82 開催レポート - AppBrew Tech Blog
                                                            • 5分でSharePlay入門

                                                              #potatotips #74 https://potatotips.connpass.com/event/214754/ - WWDC21 - iOS 15 - SharePlay - Group Activities

                                                                5分でSharePlay入門
                                                              • コネヒトにて、iOS/Android開発Tips共有会「potatotips」を開催! | Connehito Tech Magazine

                                                                2月12日、コネヒトにてiOS/Android開発Tips共有会「potatotips #68」を開催いたしました!イベントの様子とコネヒトメンバーのプチインタビューをお届けします。 potatotipsとは 「参加者全員がTipsを発表する」というコンセプトのiOS/Androidアプリ開発者向けの勉強会。(最近はオーディエンス枠も出来たみたいです)毎回、会場はいろいろなところが提供しており、68回目の今回はコネヒトにて開催いたしました! 今回は、iOSのLTが6名、AndroidのLTが7名、合計13名の方にTipsを共有いただき、その後、懇親会を実施。大盛況のまま、おわりました。 今回、ママリ開発チーム 柳村がiOS側、関根がAndroid側のLTを実施しました。LT直後の感想をインタビューしました。 【iOS】柳村「Swift製CLIツールをMintを使わずSwiftPackage

                                                                  コネヒトにて、iOS/Android開発Tips共有会「potatotips」を開催! | Connehito Tech Magazine
                                                                • ショートカット.appでjq - cockscomblog?

                                                                  jq jqはJSONをいい感じにクエリできるやつで、広く使われている。 $ echo '{"foo": "bar"}' | jq '.foo' "bar" 例えばGitHub Actionsのランナーにもデフォルトで入っている。 あるいはGitHubのCLIツール gh にも --jq オプションがあって、統合されている。 つまりソフトウェアエンジニアにとっては、jqはJSONを触るときのデファクトスタンダードツールと言える。 ショートカット.app iOS/iPadOS/macOSには、ショートカット.appがある。特に説明は不要と思う。 ショートカットでなんらかのJSON APIを利用したい場合、「URLの内容を取得」アクションでデータを取得して、「辞書の値を取得」(あるいは「リストから項目を取得」)アクションで情報を取り出す。 これでいいといえばいい。が、やはりjqを使いたい。 Sw

                                                                    ショートカット.appでjq - cockscomblog?
                                                                  • #FirebaseAppDistribution x #Bitrise x #fastlane で簡単アプリ配信 #potatotips - Tech Blog

                                                                    こんにちは。Androidエンジニアのakatsuki(@akatsuki174)です。 先日、弊社では全社合宿を行いました。私は「Firebase App Distributionで簡単にアプリを配信できるようにするぞ!」という目標を立て、無事合宿中に対応が完了しました。ということでFirebase App Distributionを使ってAndroidアプリを配信する方法について書こうと思います。 ※以降、書くのが面倒なのでFirebase App DistributionをFADと略します。 ※この記事はpotatotips #67の登壇補足資料でもあります。 想定読者 アプリ配信を簡単に実現したい人 FADがどんなものなのか知りたい人 Firebase App Distributionとは Firebaseが提供している、テスターにアプリを配布する仕組みです。比較的最近パブリックベ

                                                                      #FirebaseAppDistribution x #Bitrise x #fastlane で簡単アプリ配信 #potatotips - Tech Blog
                                                                    • String Catalog

                                                                      WWDC 2023で発表のあったString Catalogについてです。 NDAを考慮し、公開されている以下のセッションで話された内容についてのみ記述しています。 ・Discover String Catalogs ・https://developer.apple.com/videos/play/wwdc2023/10155/ ・What's new in Xcode 15 ・https://developer.apple.com/videos/play/wwdc2023/10165 ・Localizing and varying text with a string catalog ・https://developer.apple.com/documentation/xcode/localizing-and-varying-text-with-a-string-catalog?chan

                                                                        String Catalog
                                                                      • UICollectionViewCompositionalLayout & DiffableDataSourceを利用したUIとCombineを利用したMVVMパターンでのAPI通信関連処理との組み合わせた実装の紹介とまとめ - Qiita

                                                                        UICollectionViewCompositionalLayout & DiffableDataSourceを利用したUIとCombineを利用したMVVMパターンでのAPI通信関連処理との組み合わせた実装の紹介とまとめUIiOSUICollectionViewSwiftCombine 1. はじめに 皆様お疲れ様です。「iOS Advent Calendar」の24日目を担当させて頂きます、fumiyasac(Fumiya Sakai)と申します。何卒よろしくお願い致します。 まずは僕自身の今年のトピックスとしては、技術書典5で頒布した書籍の商業化・業務では新たな現場での新規iOSアプリ開発を通じてRxSwift・Laravel・Nuxt.jsに触れる機会・新たな書籍の執筆&技術系同人誌イベントの参加・iOSDCからリジェクトコンでの2日連続での登壇...等々と昨年以上に変化とバラエ

                                                                          UICollectionViewCompositionalLayout & DiffableDataSourceを利用したUIとCombineを利用したMVVMパターンでのAPI通信関連処理との組み合わせた実装の紹介とまとめ - Qiita
                                                                        • リーダーアプリに外部課金リンクを設置する

                                                                          potatotips #80

                                                                            リーダーアプリに外部課金リンクを設置する
                                                                          1