I have been working on the idea I have for sort of another photo sharing app. Last few days, as I have been working on the part of it for taking photos in square format (like instagram) I started to wonder what is a better approach. Should I really be building my own camera functionality or should I just use the one that comes with the phone?

As I am developing this for Android (for starters) I can get a picture either through intent system from already existing camera app or I can build my own inapp camera activity.

What do you think is a better approach from user experience point of view. Should I leave them to use the app they are probably familiar with or should I build my own photo taking activity/app so my application feels more of a complete package rather then "just another" service for sharing photos?

  • Wouldn't that depend on what your app is for? To me, the usecase is quite different. Sharing a picture I take right now is sharing what is happening to me, what I see around me. Sharing a picture I have stored on my device seems to belong in a setting who's focus less on the here and now, and more on telling a story, with a little less urgency.
    – André
    Jan 28, 2013 at 16:34
  • True, but I am aiming at people who like and practice photography. I am not going for a blog feel that Instagram and for example Tumblr have. I want to provide the user with portrait, landscape and square formats. Landscape and portrait is provided by standard app, square I would have to edit and also if user uses some other photo taking app that is "advanced" in some way then I would also have to compete with that. Let's say that the picture you shave would probably have to be made new.
    – Dusko
    Feb 1, 2013 at 8:42

3 Answers 3


As with most things, it is a tradeoff. There is really no clear winner, and you must choose between which factors matter most to you.

If you use existing camera functionality:
- most users will have no problem understanding how things work
- have less code to maintain
- fewer bugs
- lower development time
- lower cost

If you create own camera functionality:
- users won't 'leave' your app, so more of a seamless experience
- there will likely be fewer steps to follow
- you won't have to design the flow between two apps where you only control the one
- you can innovate on the camera part of the app
- better branding

Overall I see the benefits of one over the other being at different points in the life of an app. If you are new to the market, it is more important that you can innovate quickly, and have lower cost. For that using the built in camera functionality is a better option.

However if you are an established app with money to spare and a large user base, branding and overall experience will matter more, and so building your own camera functionality would likely make the most sense.

TL;DR: If you are new, use the built in camera app. If you are established with a large user base, consider building your own.

  • 1
    I up-voted this answer, but I'd like to caveat that I would deemphasize building your own further even when the application has a mature and substantial user base. I would add that building your own camera functionality into the application increases app size and contributes to a fragmented platform experience of using the camera. This can lead to dissatisfaction in the app's UX, if other applications use the default camera app. It is here important to study other apps that are used in conjunction with yours, to determine if default or in-app cameras are normal.
    – Matthew
    Jan 28, 2013 at 20:29
  • 1
    @Matt I agree. That is why I only said you should consider it, not that you should do it. My money is on always using then built in app.
    – JohnGB
    Jan 28, 2013 at 22:55
  • 1
    Yes I think I will go with built in app, or whatever user wants to use.
    – Dusko
    Feb 1, 2013 at 8:46

Android is designed with the concept of having Intents done by different applications. Per Android standards, if you want to take a photo in your application, it should hand off to whatever software provides the photo taking Intent unless you specifically need to alter the behavior of taking a photo (in which case you should implement your own Intent for taking a photo and use that).

More information can be found in the Android developer documentation about Intents. Basically the idea is to try and ensure a uniform behavior across the way that a user has setup their phone. This way they can use the maps they want, the media player they want, the browser they want, the camera app they want, etc and any applications that need to make use of that functionality will behave in the way the user expects.

  • Is that part of the Android standards? That's not something I would have known, so it's good to know. Do you have a link to the standards, if such a thing exists, or information where you got this from?
    – JonW
    Jan 28, 2013 at 17:17
  • 1
  • I know that, that is why I am thinking about this. I think I'll probably go with intents since at the moment I think I should put all energy towards building a great app for sharing (around this idea) rather then to compete with specialist apps for photo taking which would probably take away my time.
    – Dusko
    Feb 1, 2013 at 8:44
  • @Stetocina - Personally, I know I always prefer that someone let me use my intent. At some point it might be worth implementing your own intent as well, but I'd leave it setup so that the user can still select which provider to use for the intent. That'll give the best of both worlds. Feb 1, 2013 at 15:48

In the end it's up to you, what type of app you want to offer – and as far as I can see you have made that decision already since you call it yourself a photo sharing app. So focus on that one key functionality – and make it the best photo sharing app there is.

If you later decide to add a camera functionality then that's fine – but at least from your question I would not expect the camera functionality to be outstanding.

Btw: are you also planning to build and establish some sharing service? Or will the app enable users to share through various existing services?

  • sharing will happen with my sharing service, but just for the community. every user will of course be able to share his activity on other social networks, but primary goal is to have my service that will support this.
    – Dusko
    Feb 1, 2013 at 8:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.