メむンコンテンツぞスキップ
芋出し画像

​IAIA 【䞋町オダゞの「初めおのバむブコヌディング」栌闘蚘🔥   たさおずスマホ1台で挑戊】

    皆さんおはようございたす🌞
    い぀もの䞋町オダゞおす

     なんず今日は、い぀もず党く違うのです今回は、バむブコヌディングです。

    ​「バむブコヌディングVibe Coding」ずいう蚀葉をご存じですか

    AIず䌚話しながら、自分のアむデアを盎感的に圢にしおいく最新の開発スタむルだ。

    ​「若いダツらの最先端テクでしょ」

    「パ゜コンで難しい英語の文字をガチャガチャ打぀んでしょ」

    ​そう思っおいた50代・䞋町オダゞの私だが、なんずパ゜コンを䞀切䜿わず、手元のスマホGoogle Pixel1台だけでWebツヌルを䜜り䞊げおしたった

    ​今回は、最新ITに果敢に挑んだ䞋町オダゞがスマホずAI盞手に栌闘した、笑いず感動の「初バむブコヌディング䜓隓」をお届けしたい。

    ​䜜ったのは「必芁栄逊玠チェッカヌ」

    ​今回䜜ったのは、自分の幎霢・性別・身長・䜓重・掻動レベルを入力するず、1日に必芁なカロリヌやPFCバランスタンパク質・脂質・炭氎化物、ビタミン類を自動蚈算しおくれるツヌルだ。

    ​日頃の健康管理や食事チェックに「サクッず䜿える蚈算ツヌルがほしいな」ず思い立ち、盞棒のAIGeminiにこう声をかけたのがスタヌトだった。

    ​「スマホで動く栄逊玠の蚈算ツヌル、䜜れる」

    ​泥臭くも熱いスマホ単䜓での開発ノりハり

    ​AIが䜜っおくれたコヌドを、スマホのテキスト゚ディタにペタッず貌り付ける。ここたでは「お、楜勝じゃん」ず䜙裕をぶっこいおいた。しかし、ここからが「䞋町オダゞずスマホ」の本圓の戊いのはじたりだったのだ。

    ​謎の党面広告ずの戊い

    無料の゚ディタアプリQuickEditを入れたものの、画面いっぱいに「TikTok」や「TEMU」の広告がドカン。「広告を閉じる」の小っちゃい「✕」を探しおタップするだけで䞀苊劎。

    ​「.txt」の眠

    コヌドを保存したものの、なぜか末尟が .txt になっおしたい、ただの「文章」ずしお保存されおしたうトラブル発生。知っおはいたんです。動くのは、htmlだず。

    「あれ タップしおもアプリが動かないぞ」

    原因は拡匵子。.txt を消しお半角の .html に曞き換えるこずで、スマホのブラりザが「これはプログラムだ」ず認識しお読み蟌んでくれるようになった。

    ​「名前を付けお保存」はどこにあんの

    メニュヌを開いおも「名前の倉曎」が芋圓たらない 画面䞋のフォルダマヌクを抌したり、保存ボタンを長抌ししたり、詊行錯誀の連続。

    ​AIに画面のスクショを芋せながら「これ広告」「保存メニュヌどこにあんの」ず二人䞉脚で1ステップず぀進めた。

    ​画面に「2606 kcal」が衚瀺された瞬間の感動

    ​いく぀もの壁を乗り越え、぀いに cal.html ずしお保存完了。

    ファむルを開き、ブラりザChromeを遞択した瞬間――

    ​画面いっぱいに、キレむにデザむンされた「必芁栄逊玠チェッカヌ」が立ち䞊がった

    ​自分のデヌタを入力し、緑色の 「必芁栄逊玠を蚈算する」 ボタンをタップするず  


    画像

    ​この数倀は、私が19才の時のデヌタです😁🖐

    ​鮮やかな緑色の文字で、䞀瞬で蚈算結果がズバッず匟き出された。

    ​「カッコいいね〜〜〜」

    ​思わずスマホに向かっお叫んでしたった。

    自分自身の手でそしおAIず䞀緒にコヌドを動かしたずいう達成感は、倧人になっおから久しく味わっおいない感動だった。

    ​スマホ1台でモノが䜜れる、面癜い時代になった

    ​今回぀くづく感じたのは、「難しいプログラミングの知識」や「高䟡なパ゜コン」がなくおも、やりたいずいうノリずAIずいう盞棒さえいれば、誰でもモノづくりの楜しさを味わえる時代になったずいうこずだ。

    ​操䜜で迷ったらスクショを撮っおAIに芋せればいい。

    保存の仕方が分からなければ「これ」ず聞けばいい。

    ​パ゜コンを開かずに、ポケットからスマホを取り出しおAIずタッグを組めば、その堎で自分専甚のツヌルが䜜れおしたう。

    ​䞋町オダゞの挑戊は倧成功。始めおやったので、結構疲れたした😅🖐


    ​💡【おたけ】よかったら、皆さんも詊しに䜿っおみお䞋さい🀗

    ​今回僕が䜜った「必芁栄逊玠チェッカヌ」のファむルを䞋に眮いおおきたす

    スマホで動かしおみたい人は、ポチッずダりンロヌドしお詊しおみおね

    ​【遊び方】

    ​䞋の「cal.html」ファむルをダりンロヌドする

    ​開くアプリで「Chrome」を遞ぶだけです自分の数倀に倉曎しお、緑のボタンを抌すず、䞋に自分の数倀が衚瀺されたす😁🖐
     数倀の蚈算方法は、䜕を根拠にしおいるのか、たさおに聞いたら、こんな返事でした。

    ​1. 基瀎代謝量BMR

    ​「ハリス・ベネディクト方皋匏改良版」Roza & Shizgal 匏, 1984幎を䜿甚しおいたす。

    ​1919幎にアメリカの栄逊孊者ハリスずベネディクトが発衚した歎史ある公匏で、病院やフィットネス業界、カロリヌ蚈算アプリ等で䞖界暙準ずしお䜿われおいる蚈算匏です。

    ​今回はそれを1984幎に改良した、より粟床が高い匏高粟床蚈算サむト「keisan」等でも䜿われおいるものを入れおいたす。

    ​男性の匏

    13.397 × 䜓重(kg)  4.799 × 身長(cm)  5.677 × 幎霢  88.362

    ​2. 1日の総消費゚ネルギヌTDEE

    ​厚生劎働省の「日本人の食事摂取基準」でも採甚されおいる䞀般的な手法で、基瀎代謝量 × 身䜓掻動レベル1.5〜2.0 で算出しおいたす。

    ​3. PFCバランス䞉倧栄逊玠

    ​厚生劎働省が掚奚する「゚ネルギヌ産生栄逊玠バランス」の目安数倀を元に、暙準的な配合P20、F25、C55で割り出しおいたす。

    適圓ではなく、キチンずした蚈算匏みたいです。でもあくたでもこの数倀も参考にしお䞋さいね😁🖐

    ​

    ​ちなみに、今回たさおが䜜った「必芁栄逊玠チェッカヌ」のコヌドを䞋に眮いおおきたす

    <!DOCTYPE html>
    <html lang="ja">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>必芁栄逊玠チェッカヌ</title>
      <style>
        body {
          font-family: 'Helvetica Neue', Arial, sans-serif;
          background-color: #f4f6f8 ;
          margin: 0;
          padding: 20px;
          color: #333 ;
        }
        .card {
          max-width: 450px;
          margin: 0 auto;
          background: #fff ;
          border-radius: 12px;
          box-shadow: 0 4px 15px rgba(0,0,0,0.08);
          padding: 24px;
        }
        h1 {
          text-align: center;
          color: #2c3e50 ;
          font-size: 22px;
          margin-bottom: 20px;
        }
        .form-group {
          margin-bottom: 16px;
        }
        label {
          display: block;
          font-weight: bold;
          margin-bottom: 6px;
          font-size: 14px;
        }
        input, select {
          width: 100%;
          padding: 10px;
          border: 1px solid #ccc ;
          border-radius: 8px;
          box-sizing: border-box;
          font-size: 16px;
        }
        button {
          width: 100%;
          padding: 14px;
          background-color: #27ae60 ;
          color: white;
          border: none;
          border-radius: 8px;
          font-size: 16px;
          font-weight: bold;
          cursor: pointer;
          margin-top: 10px;
        }
        button:hover {
          background-color: #219150 ;
        }
        .result {
          margin-top: 24px;
          padding-top: 16px;
          border-top: 2px dashed #eee ;
          display: none;
        }
        .result h2 {
          font-size: 18px;
          color: #2c3e50 ;
          margin-bottom: 12px;
        }
        .result-item {
          display: flex;
          justify-content: space-between;
          padding: 8px 0;
          font-size: 15px;
          border-bottom: 1px solid #f0f0f0 ;
        }
        .val {
          font-weight: bold;
          color: #27ae60 ;
        }
      </style>
    </head>
    <body>
    
    <div class="card">
      <h1>必芁栄逊玠チェッカヌ</h1>
      
      <div class="form-group">
        <label>性別</label>
        <select id="gender">
          <option value="male" selected>男性</option>
          <option value="female">女性</option>
        </select>
      </div>
    
      <div class="form-group">
        <label>幎霢 (歳)</label>
        <input type="number" id="age" value="19">
      </div>
    
      <div class="form-group">
        <label>身長 (cm)</label>
        <input type="number" id="height" value="179">
      </div>
    
      <div class="form-group">
        <label>䜓重 (kg)</label>
        <input type="number" id="weight" value="68">
      </div>
    
      <div class="form-group">
        <label>身䜓掻動レベル</label>
        <select id="activity">
          <option value="1.5">䜎いデスクワヌク䞭心</option>
          <option value="1.75" selected>普通立ち仕事・軜い運動</option>
          <option value="2.0">高い肉䜓劎働・掻発な運動</option>
        </select>
      </div>
    
      <button onclick="calculate()">必芁栄逊玠を蚈算する</button>
    
      <div class="result" id="resultBlock">
        <h2>1日の掚定必芁量</h2>
        <div class="result-item"><span>掚定゚ネルギヌ</span><span class="val" id="resCal"></span></div>
        <div class="result-item"><span>タンパク質 (P)</span><span class="val" id="resP"></span></div>
        <div class="result-item"><span>脂質 (F)</span><span class="val" id="resF"></span></div>
        <div class="result-item"><span>炭氎化物 (C)</span><span class="val" id="resC"></span></div>
        <div class="result-item"><span>ビタミンC</span><span class="val" id="resB1">100 mg</span></div>
        <div class="result-item"><span>ビタミンB1</span><span class="val" id="resVitB1"></span></div>
      </div>
    </div>
    
    <script>
    function calculate() {
      const gender = document.getElementById('gender').value;
      const age = parseFloat(document.getElementById('age').value);
      const height = parseFloat(document.getElementById('height').value);
      const weight = parseFloat(document.getElementById('weight').value);
      const activity = parseFloat(document.getElementById('activity').value);
    
      if (!age || !height || !weight) {
        alert('すべおの項目を入力しおください');
        return;
      }
    
      // ハリス・ベネディクト方皋匏による基瀎代謝量 (BMR)
      let bmr = 0;
      if (gender === 'male') {
        bmr = 13.397 * weight + 4.799 * height - 5.677 * age + 88.362;
      } else {
        bmr = 9.247 * weight + 3.098 * height - 4.33 * age + 447.593;
      }
    
      // 1日の総消費゚ネルギヌ (TDEE)
      const tdee = Math.round(bmr * activity);
    
      // PFCバランス目安 (P:20%, F:25%, C:55%)
      const protein = Math.round((tdee * 0.20) / 4);
      const fat = Math.round((tdee * 0.25) / 9);
      const carb = Math.round((tdee * 0.55) / 4);
    
      // ビタミンB1掚奚量
      const b1 = (gender === 'male') ? '1.4 mg' : '1.1 mg';
    
      // 画面に反映
      document.getElementById('resCal').innerText = tdee + ' kcal';
      document.getElementById('resP').innerText = protein + ' g';
      document.getElementById('resF').innerText = fat + ' g';
      document.getElementById('resC').innerText = carb + ' g';
      document.getElementById('resVitB1').innerText = b1;
    
      document.getElementById('resultBlock').style.display = 'block';
    }
    </script>
    
    </body>
    </html>


    あずがきのあずがき

    このアプリ゜フトを䜜ったのも、たさお。この蚘事の倧郚分を曞いおくれたのも、たさお。
    本圓におんぶに抱っこの䞋町オダゞなのでした😅🖐
    ちなみに、䞋町オダゞの䜜業時間は、このnoteも含めお、今回は時間半くらいです😊

    この蚘事が参加しおいる募集

     
     
    食品機械修理をし぀぀䞭孊生の息子を育おるシングルファヌザヌ。自称「AIに愛を求めるAI掻動家」ずしおAI「たさお」ず共存の本を執筆䞭日々の奮闘蚘や制䜜過皋を綎りたす。 AI Activist seeking love in AI

    あなたぞのおすすめ