RORK LABEN
BUILD — RorkはReact Native(Expo)でネイティブのiOS/Androidアプリを生成。平易な説明からデプロイ可能な実コードが出力されますMAX — Rork Maxはnative Swiftを出力し、iPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageに対応しますMAX — 本物のSwift生成で性能とApp Store審査の通しやすさを両立。現状ほぼ唯一の選択肢ですDEPLOY — テスト用の共有リンク作成とiOS/Android双方の自動ビルドに対応し、別々の開発工程を省けますPRICE — 無料で始められ、有料プランは月$25から。個人開発で試作から配布まで無理なく回せますFOCUS — BoltやLovableのようなWeb中心ツールと違い、Rorkはモバイルに特化していますBUILD — RorkはReact Native(Expo)でネイティブのiOS/Androidアプリを生成。平易な説明からデプロイ可能な実コードが出力されますMAX — Rork Maxはnative Swiftを出力し、iPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageに対応しますMAX — 本物のSwift生成で性能とApp Store審査の通しやすさを両立。現状ほぼ唯一の選択肢ですDEPLOY — テスト用の共有リンク作成とiOS/Android双方の自動ビルドに対応し、別々の開発工程を省けますPRICE — 無料で始められ、有料プランは月$25から。個人開発で試作から配布まで無理なく回せますFOCUS — BoltやLovableのようなWeb中心ツールと違い、Rorkはモバイルに特化しています
記事一覧/開発ツール
開発ツール/2026-06-26中級

Rorkの壁紙アプリで、シェア画像にだけ透かしを焼き込む

Rorkが生成したExpoの壁紙・画像アプリで、保存画像はそのまま、SNSシェア用の書き出しにだけ透かしを合成する実装を、react-native-view-shotとSkiaの2通りで、解像度劣化を防ぐ落とし穴つきで整理します。

Rork454Expo108react-native-view-shotSkia壁紙アプリ27

プレミアム記事

壁紙アプリを長く運営していると、ユーザーが作った画像が SNS で広がる瞬間がいちばん嬉しい一方で、出どころのわからないまま拡散していくのがもったいなくも感じます。私自身、個人開発で壁紙・癒し系のアプリを App Store と Google Play で運営してきましたが、シェアされた1枚にアプリ名が小さく入っているだけで、そこから検索して入ってくる人が確実にいます。

ただし、透かしの入れ方を間違えると逆効果です。ユーザーが自分の端末に保存する壁紙にまで透かしを焼き込むと、「ロック画面にロゴが乗る」と嫌われて低評価につながります。狙いは一つで、保存用は無加工のまま、SNSシェア用に書き出すときにだけ透かしを合成する二段構えを作ることです。Rork が出力する Expo(React Native)のコードを土台に、この作り分けを実装します。

保存とシェアで画像を分ける設計

最初に方針を決めます。アプリ内で扱う画像は「原本」一つですが、出口を二つに分けます。

  1. 端末への保存・壁紙設定に渡すのは、原本そのまま。透かしは入れません。
  2. SNS や他アプリへシェアするときだけ、原本の上に透かしを合成した新しい画像を生成し、それを共有シートに渡します。

この分岐をシェア処理の手前に一段かませるだけで、ユーザー体験を損なわずに導線だけを残せます。私はこの判断を最優先で推奨します。透かしは「ユーザーのため」ではなく「拡散先の人のため」に入れる、と割り切ると設計がぶれません。

手早く作るならview-shotで重ねて撮る

いちばん実装が軽いのは、画面に画像と透かしを重ねて表示し、その領域をキャプチャする方法です。react-native-view-shot を使います。

import { useRef } from "react";
import { View, Image, Text, StyleSheet } from "react-native";
import ViewShot, { captureRef } from "react-native-view-shot";
import * as Sharing from "expo-sharing";
 
export function WatermarkedShare({ uri }: { uri: string }) {
  const shotRef = useRef<ViewShot>(null);
 
  async function shareWithWatermark() {
    // オフスクリーン相当のViewを原本解像度でキャプチャする
    const out = await captureRef(shotRef, {
      format: "jpg",
      quality: 0.95,
      result: "tmpfile",
    });
    await Sharing.shareAsync(out);
  }
 
  return (
    <ViewShot ref={shotRef} style={styles.canvas}>
      <Image source={{ uri }} style={styles.base} resizeMode="cover" />
      <Text style={styles.mark}>made with Aurora Wallpapers</Text>
    </ViewShot>
  );
}
 
const styles = StyleSheet.create({
  canvas: { width: 1080, height: 1920 },
  base: { width: 1080, height: 1920 },
  mark: {
    position: "absolute", right: 24, bottom: 28,
    color: "rgba(255,255,255,0.85)", fontSize: 28, fontWeight: "600",
  },
});

この方法の利点は実装が速いことですが、落とし穴もあります。captureRef は基本的に画面のピクセル密度で撮るため、width: 1080 と書いても Retina 端末では実寸が変わり、書き出し画像がぼやけたり、逆に巨大になったりします。原本が高解像度の壁紙だと、この「画面依存」がそのまま画質劣化として出ます。試作や低めの解像度なら view-shot で十分ですが、解像度を厳密に保ちたい壁紙アプリでは次の方法を推奨します。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
保存画像は無加工のまま、SNSシェア用の書き出しにだけブランド透かしを焼き込む二段構えを設計できる
view-shotで素早く作る方法とSkiaで高解像度を保つ方法の2通りを、動くコードと使い分けの基準つきで手に入れられる
透かしがぼやける・端で見切れる・拡散時に画質が落ちるといった、リリース後に効いてくる劣化を事前に潰せる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-05-26
Rork で生成した壁紙アプリを iPad へ対応させた2週間の所感
2014年から壁紙アプリを iPhone 中心で運用してきた個人開発者として、Rork で立ち上げた新規壁紙アプリを iPad に対応させる作業を2週間続けた記録です。AdMob アダプティブバナーの暴れ方、Safe Area の盲点、グリッド表示の解像感まで、運用の温度のまま書き残しました。
開発ツール2026-06-26
Rorkで作ったアプリの審査が、プライバシーマニフェスト不備で止まらないようにする
RorkのExpoアプリでApp Store審査が止まる原因になりがちなPrivacyInfo.xcprivacyとRequired Reason APIへの対応を、app.config.tsの設定とサードパーティSDKの確認手順つきで実務的に整理します。
開発ツール2026-06-26
Rorkのアプリで音をバックグラウンド再生し、ロック画面から操作できるようにする
Rorkが生成したExpoアプリで音楽やヒーリング音をバックグラウンド再生し、ロック画面・コントロールセンターから操作できるようにするまでを、expo-audioの実装コードと落とし穴つきでまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →