In software engineering, an anti-pattern (or antipattern) is a pattern used in social or business operations or software engineering that may be commonly used but is ineffective and/or counterproductive in practice :: Wikipedia
Mobile, being a new area, is generating its own set of anti-patterns. Some of the better (worse?) ones:
- Too many taps. 50 taps to find somewhere to pee, on your smartphone?.
- Asking the user to sign in every time they open the app (for an app which isn't banking)? The ZipCar app does an excellent job of this, even forgetting the username each time.
- Asking the user, constantly, if they want to review the app. (I'm guilty of this a bit, as it also seams to work for getting non-negative reviews)
- Your app needs a splash screen to explain all the otherwise hidden gestures?
- … or worse, hijacks existing gestures for other purposes (this one is a bit more accepted now then it was when iOS first came out, thanks to the UX explosion that happened in the 1001 Twitter apps)
Avoiding these when you are designing your app is fairly easy - a lot of them are just lazy design (or lazy coding). Sometimes, breaking them is a requirement:
The Bouncer: The bouncer anti-pattern occurs when the Cocoa Touch application requires authentication credentials for operation, but doesn’t offer the option for creating those credentials inside the application. Instead, the application opens Safari and forces registration through a web page, or worse, offers no option for registration at all. - Programming the iPhone User Experience, Antipatterns chapter
However, if you did include a sign up link, for a free+paid service (eg Dropbox), Apple would reject the app. Sometimes you just have to know which rules to break.
If you are interested in UX and design - and as a mobile developer, I think having some basic knowledge and interest is now a requirement - there are lots of good resources around: