I'm working on an instant messaging app for mobile devices (much like WhatsApp, Hangouts, etc.). I've been advised to implement an internal photo gallery to let the user navigate through the pictures exchanged with chat buddies instead of opening an external gallery app.

I won't go into the implementation efforts required to implement such a feature - even if I can find it online already packaged as a useful library, there will be issues with possible bugs and performance issues, especially in memory usage.
But excluding that for a moment, what is the actual advantage of implementing a feature that is already implemented by another app which is much more mature than my own gallery implementation and does the job much better than my app could do?

I'm taking the Android platform as an example in this case. The Android platform is designed to let applications cooperate with each other, so when you click on a button to view an image, you go directly to the installed gallery app, without even noticing you changed app. Is it worth to duplicate such a feature inside my app?

EDIT: talking with a few workmates, we came up with three possible reasons why we should include an internal app:

  1. you don't leave the application
  2. you can browse selectively through the pictures exchanged with a specific contact/group
  3. you can handle border line cases such as image manually deleted by the user (some gallery apps don't handle that very well)

But is that still worth the effort?

  • 1
    I strongly agree with you. Unless your galley has some very specific feature related to your app then I don't see any reason to reinvent a (worse) wheel. I'm sorry to see too many apps don't follow this golden rule. Oct 5, 2015 at 12:24
  • I think you are 100% correct. Besides the problems you already mentioned, the fact that the photos are not integrated into the gallery (and thus not available to all the other apps/functions that might want to use them) is going to be very annoying.
    – user31143
    Oct 5, 2015 at 14:48
  • @dan1111 actually those photos are available in the gallery app through a dedicate folder (an "album" in gallery terms), however they are just placed there together with no organization (besides timestamped filenames). Oct 5, 2015 at 16:18

2 Answers 2


That's a great question and like most of the answers and comment I would strongly agree to use the OS specific gallery. But I will still try to list some advantages overlooking the negative points just to get another idea.

1. To organise photos the way your users need!

This is the most important point. The OS may not be able to handle the very specific tagged / collection aspect of photos within your app. Its happened so many times that I have remembered who I had sent the photo to rather than the photo itself and Whatsapp's helped me in that regard!

2. To enable more functionality!

For example Google's Photos App has a very powerful search that can actually do facial and object recognition. Sorry default galleries don't do that!

3. If the photos are not installed in the Device itself!

If your app also has a cloud aspect to it, then maybe you are pulling in photos from the device and the cloud. In these scenarios, obviously the device's gallery has no idea!

4. Consistent UI across platforms.

For consumer apps it is good to be native and as native like as possible. However, for enterprise apps the story is not so clear. Lots of companies expect training of Enterprise Software and they would like the App to look & feel the same irrespective of device platform.

5. To protect photos within your App.

This could be an offshoot of #3 but more specifically if these photos are not be accessible from the gallery. Maybe users shouldn't use another Messaging App / Email etc to send these pictures?

6. If you need to show custom media type.

We got this mobile development project where our client wanted a single gallery for photos, videos, audios and text. At that time the Android Gallery did not have this functionality enabled.

7. The User doesn't have to leave the App.

Pretty much covered in the comments and answers. I have, many times, been unfaithful to the opened app and moved on to another after going to the gallery and getting distracted by some memories.

8. Small Number of photos for a great User eXperience.

I have strayed waywards to see many more photos than what I had intended to see, since I have so many photos in my Gallery. Sometimes I don't even find the ones I was looking for! Ahh only seeing the photos relevent to the app? Ahh Nice UX!

9. For something we haven't thought of yet!

Since you are at inception, many solution architects would feel good about you making your own gallery component so that you are in control of all aspects of your app and if your users are asking for some specific feature, you would be in a great position to give it!

  • 1
    Some points apply to my case, some don't. Still, all good points in general. I will carefully think of all the options. Thanks! Oct 18, 2015 at 15:44

The reasons you gave are completely valid for making a new internal gallery and not using the existing one. But as @Adriano Repetti said there is no point in reinventing the wheel. One of the big aspect of making internal gallery is that you can have much more control over how the photos are presented in the library, you don't have to rely on the operating system of the phone to add new feature in the library. Another aspect from a brand point of view is what kind of experience you want to give the users. Whether you want to give users the feel that they are still within the app or have navigated away from it as you mentioned in the the first point.

Ultimately I would recommend you to do a small user test (A/B testing). Make a small prototype and try to figure out that whether users actually notice the internal gallery or they just don't care about it. You can also have new concepts in your internal gallery version of prototype to check the proof of concept.

  • The problem with this A/B test is, don't you have to actually implement the whole gallery feature to do it? Kind of a moot point by then, at least in terms of development effort.
    – user31143
    Oct 5, 2015 at 14:40
  • Actually making a prototype is not like coding the entire thing. You can have just the screenshots made in photoshop and use inVision to test it. So no coding at all. Or you can find any other prototyping tool that suits your requirement. Whole point of making prototype is that you dont have to make the actual product and you can test the product by less effort and iterate over the prototype for improvements.
    – jason
    Oct 5, 2015 at 15:17
  • This is a relevant answer, who downvoted it? Oct 5, 2015 at 16:25

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.