The rules
- At least two segments separated by dots:
com.exampleis the minimum. - Each segment starts with a letter.
- Only letters, digits and underscores — no hyphens, spaces or accents.
- Avoid Java keywords as segments (
new,class,int,package…). - Use lowercase by convention.
- It must be unique on Google Play; nobody else can use it once taken.
The reverse-domain convention
Take a domain you own, reverse it, and add the app: shop.example.com → com.example.shop. Without a domain, use your name: io.github.yourname.notes or com.yourname.notes. Do not use other companies' names or domains.
Good and bad examples
| Package name | Verdict |
|---|---|
com.mariasbakery.menu | ✅ Clear and owned |
io.github.devsam.quizapp | ✅ Fine without a domain |
com.my-shop.app | ❌ Hyphen not allowed — use com.my_shop.app or com.myshop.app |
com.2048.game | ❌ Segment starts with a digit |
myapp | ❌ Only one segment |
com.example.app | ⚠️ Valid but rejected by Google Play (reserved) |
Why it can't change
Android treats a different package name as a different app: no update path, separate data, separate reviews and ratings on Play. If you ever change it, users must install the "new" app from scratch.
The app name users see under the icon is separate and can change in any update.
Patterns that work
| Situation | Pattern | Example |
|---|---|---|
| Your business with a domain | reversed domain + app | com.greenleafcafe.menu |
| Personal project, no domain | com + your name + app | com.aliyakhan.flashcards |
| Open-source on GitHub | io.github + username + app | io.github.aliyakhan.flashcards |
| App you build for a client | the client's domain | com.clientbrand.app |
| Several apps from one brand | same prefix, different last part | com.brand.shop, com.brand.staff |
Building apps for clients
Use the client's domain, not yours, so the app can move to their own Google Play account later without changing identity. Agree up front who keeps the signing key.
Check availability
Open https://play.google.com/store/apps/details?id=your.package.name. If a listing appears, the name is taken. If you get "not found", it is not published — though it may still be reserved by an unpublished app in someone's Play Console.
Make your APK now — free
No Android Studio, no code, no watermark. Pick what you are starting from:
Frequently asked questions
Is the package name the same as the app name?
No. The app name is the label under the icon and can change any time. The package name is a hidden, permanent identifier.
Can I use a hyphen in an Android package name?
No. Use an underscore or remove it: com.my_shop.app or com.myshop.app.
Can two apps have the same package name?
Not on the same phone or on Google Play. Installing one replaces the other only if both are signed with the same key.