Your input stays in this browser.
A QR code generator app creates a code from typed text or a saved contact, the same underlying task a browser-based generator performs, and it needs no camera permission to do this since generation does not involve reading anything through the lens at any step. Its main additions over a browser tool are offline access, a saved history of past codes, and direct export to a phone's photo library.
Generating and scanning are different jobs with different permission needs
This site's guide to a QR code scanner app's permissions covers why a scanning app reasonably requests camera access: it has to see a code to read it. A generator app has no such requirement, because creating a code is a purely computational task that turns typed or selected data into an image, with no camera involved at any point. An app labelled as a QR code generator that requests camera access anyway is either bundling a scanning feature alongside generation, which is a legitimate combined design, or requesting a permission its stated function does not actually need, which is worth questioning before installing. Checking an app's store listing for whether it advertises both features, generation and scanning, before installing is a quick way to tell which of those two explanations actually applies.
What a dedicated app adds over a browser-based generator
A browser-based generator such as this site's own tools works without installing anything and never stores a payload on a server when it runs client-side, but a dedicated app can offer a few genuine conveniences a browser page cannot: continued access without an internet connection once installed, a saved history of previously generated codes searchable later without regenerating them, and, on some platforms, a direct save into the phone's photo library or files app without the extra step of a browser download dialog. None of these additions change the underlying QR symbol produced; ISO/IEC 18004 defines the same symbol structure regardless of which tool built it. Weigh those genuine conveniences against the cost of installing and maintaining one more app, since a person who generates a code only a few times a year rarely recovers that cost in saved time.
Worked example: generating a contact-card code two different ways
A person wants to share their contact details as a QR code at a conference. Using this site's browser-based generator, they type their name, phone number, and email into a web form, generate the code, and download the resulting PNG to their phone's photo library in a few extra taps. Using a dedicated generator app that has been granted access to the phone's contacts, they instead select their existing saved contact directly, skipping manual retyping and reducing the chance of a transcription error in a phone number or email address. Both routes produce a standards-compliant vCard QR code; the app's contacts-access permission is the one genuinely justified by this specific convenience, distinct from a camera permission a pure generator app does not need. A colleague at the same conference repeats the browser-based route on a borrowed laptop with no app installed at all, and produces an identical, equally valid code from the same typed details in under a minute.
Saved history is a convenience with its own trade-off
A generator app's saved history of past codes is useful for revisiting a frequently reused payload, such as a personal WiFi network or a standard contact card, without retyping it each time. That same saved history is also a stored record of everything that app has ever been asked to encode, including anything sensitive typed in during a moment of convenience, such as a temporary password shared as a QR code for a one-time device setup. Review what a generator app actually retains, and whether that history syncs to a cloud account, before treating it as a purely local convenience with no lasting footprint.
Choosing free versus a paid tier for a generator app
A free generator app's tier commonly limits the number of saved codes, restricts export formats to a single low resolution, or adds a visible watermark to the exported image, while its paid tier removes those specific restrictions rather than changing the underlying QR encoding itself, which does not vary by tier in any app worth using. Compare what a specific limitation actually blocks against the task at hand: a single one-off code for a personal use rarely needs an unlimited saved-history tier, while a small business generating dozens of distinct codes across a year may find that limit reached quickly and worth working around with a browser-based tool instead, which carries no such tier restriction at all. A watermark added to a free tier's export is worth checking for specifically before printing anything, since it can sit close enough to the symbol's quiet zone to interfere with a scan even when it looks like a harmless corner decoration on screen.
Mistakes people make with a generator app specifically
Granting a requested camera permission without checking whether the app's generation feature actually needs it is the most avoidable mistake, since a permission granted once often persists long after the specific feature that prompted it was ever used. A second mistake is trusting an app's saved history as a permanent record without a separate backup, since an app uninstalled to free storage space, or a phone replaced without a data transfer, can take that saved history with it. A third is exporting a code at the app's default low resolution for a use that actually needs a sharper file, a resolution problem this site's guide to HD export covers directly. A fourth is assuming a generator app and a scanner app from the same publisher share one saved history automatically, when many combined apps in fact keep generated codes and scanned results in two entirely separate lists inside the same interface.
Offline generation versus a cloud-dependent app
This site's tools generate a code entirely within the browser without any account or cloud dependency, and the same is true of many dedicated generator apps that store their saved history purely on-device; the earlier point about a saved history's footprint applies with less force to a genuinely offline, on-device app than to one that syncs that same history to a cloud account by default. Check specifically whether a generator app requires creating an account and enabling sync before it will generate anything at all, since that is a meaningfully different privacy posture from an app that works fully offline and treats an optional account as exactly that, optional, for a person who only wants a local tool with no ongoing service dependency.
What a generator app cannot verify for you
Apple's own Camera documentation and the equivalent Android guidance describe how a phone reads a code back, a separate step from how any app, browser-based or dedicated, created it in the first place; a generator app's own preview confirming a code looks correct on its own screen is not the same as confirming a different device's camera will read it successfully. Whichever tool generated the code, run the exported file through an independent check, such as this site's own decode page, before relying on it, since a generation bug in one specific app is exactly the kind of failure a same-app self-check is least likely to catch. Apple Support: Scan a QR code with your iPhone or iPad is the named source for the current external rule or product behaviour.