Cake
  • Log In
  • Sign Up
    • I know, I know, yet another post about the Android app. I hope you take it as a sign of the demand for it. :)

      I know you folks had your reasons for going with iOS first and not Android. But have you thought about opening up the API's to independent developers so that they can develop their own apps for Android? I am thinking more along the lines of Reddit. Developers can offer ad supported and ad free paid versions of the apps and pocket any revenue that they earn. Although at this point of time I know there needs to be a lot more going for a developer to choose do this, most importantly a sizeable user base.

      I can think of a few reasons why you may not want to go down this path:

      1. Ensuring that users are not served with a subpar experience that may demotivate them further from using Cake.

      2. Wanting to ensure that the app experience for Android users matches the internal standards and core principles of Cake as a service.

      3. Wanting to make sure you scale up slowly and not wanting your servers to be hammered due to a sudden influx of traffic.

      These are just some reasons from the top of my head and I admit I have zero knowledge of the technical intricacies and challenges of running a website, so please pardon me if I sound woefully ignorant.

      I did see this approach being suggested in one of the comments in the iOS app thread, but didn't see a response to it, so wanted to hear the teams thoughts on this. As a reward for reading this far, here's Android on a cake. :P

    • The API is open, it’s just not publicly documented yet. 🙂

      The only reason we haven’t talked much about our API so far is that we’re still changing it fairly often as we develop and tweak Cake’s features, so it’s kind of a moving target. That said, literally everything Cake does is done via the API (both the website and the iOS app are entirely built on it), so if an eager Android developer wanted to use it now and didn’t mind reverse engineering it a bit, they totally could.

    • I am sorry I was speaking out of my ass and trying to sound wiser than I was when I mentioned making the API's available. 😅 To be completely frank and honest, I do not possess any technical knowhow of constructing apps, but from my understanding you are saying that any enterprising Android dev can currently make an app if they took the effort to do so. Awesome!

      You mentioned that the API is open but not publicly documented yet, which implies that it might be in the future. Can you shed some light on if the team plans to adopt the Reddit model for developing Android apps in the future? I completely understand if it's too early to talk about it and if you want to hold your cards close to the chest for now. It is generally prudent to refrain from even suggesting something that you are planning do down the line since on the internet people assume that it is etched in stone. I have seen a lot of entitled people harassing devs for features on XDA forums and although I think we on Cake are a much better audience, you never know who might turn out to be a fruitcake. 🙄

      TL;DR If possible, could you please expand on your plans for an app on the Android platform?

    • I have somewhat mixed emotions, maybe because I don't feel like I have clear knowledge of the ramifications.

      First, I'm really happy so many people are asking for a native Android app, because it shows you care. 🙂

      At SmugMug, we opened up the API and got a half dozen Android apps and it did help us get traction because the app developers helped promote their apps on places like Hacker News. The best news was that someone from IBM developed an Android app for SmugMug that was excellent, better than our own native app, and we were able to buy the app and hire him to make it our official app. Big success.

      One downside was some of the other apps weren't very good and didn't keep up with our latest improvements. It added a surprising amount of work for our support team when customers wrote in with problems and they had to figure out that they were experiencing a bug in a third party app. Many customers blamed us. We also had to be aware when we were making engineering changes that we might break third party apps, and that grew ever more complicated.

      I'm vague about this, but my impression is Twitter and Reddit went through the same thing and ended up buying TweetDeck and Alien Blue.

      The other thing is our API at SmugMug got used for some crazy unexpected stuff. We had to have API keys that we could revoke, terms & conditions, enforcement, dev support, etc.

    • I am sorry I was speaking out of my ass and trying to sound wiser than I was when I mentioned making the API's available. 😅

      Not at all!

      You mentioned that the API is open but not publicly documented yet, which implies that it might be in the future. Can you shed some light on if the team plans to adopt the Reddit model for developing Android apps in the future?

      What's the Reddit model?

      TL;DR If possible, could you please expand on your plans for an app on the Android platform?

      We would very much like to develop an official Android app for Cake. Right now the main thing standing in the way of that is money. We don't have a lot of it to throw around, so we have to be very selective about how we use it. Engineers and designers have to be paid, and our current engineering team has lots of web and iOS expertise but no Android expertise, so we'd need to hire more people to work on an Android app.

      The best way you can help us (apart from writing an Android app!) is to keep using Cake and get your friends to use it. The more people use Cake, the easier it will be for us to get more money and justify spending that money on an Android app. 😄

    • One downside was some of the other apps weren't very good and didn't keep up with our latest improvements.

      Yeah. It's tricky.

      In general though, my feeling is that users are pretty smart. As long as good apps are available, bad apps aren't going to get very popular. The thing to worry about is when the only apps available are bad apps, because then users have no choice.

      With Cake, we have a great website. Anyone can use it on almost any device. So if someone writes a bad app, I'm not too worried, because as long as the website is better, people aren't likely to use the bad app. And if someone writes a good app that's better than the website, that's great for everyone!

      I'm vague about this, but my impression is Twitter and Reddit went through the same thing and ended up buying TweetDeck and Alien Blue.

      I think Twitter's open API and the plethora of third party apps it allowed were the reason Twitter grew so quickly. Without it, Twitter probably would have been overtaken by a more open competitor and wouldn't be around (or at least wouldn't be nearly as popular) today. The sad thing is that now that Twitter is huge, they've started shutting down or limiting many of the APIs third party apps rely on in an attempt to drive more people to the website and official mobile apps. I've watched so many great Twitter apps and services die one by one as Twitter strangles them to death.

      The origin story is similar for Reddit's API, though I think they'd have survived without it (they'd have just grown a lot more slowly). So far they haven't tried to kill off third party apps the way Twitter has.

      I still use both Twitter and Reddit primarily through third party apps. If they shut down their APIs, I'd stop using them.

    • With Cake, we have a great website. Anyone can use it on almost any device.

      That is so true. It has everything it needs and nothing it doesn't, and I can use it on my Android phone just as well as on a desktop (imho). This conversation made me think why would anyone even want an app, if not solely for enhanced GUI? I can see that being useful for other websites, that offer services such as SMugmug for example.

    • What's the Reddit model?

      By the Reddit model I meant allowing third party app developers to build their own interpretations of the Cake app. This would be unlike Google Plus where there were no third party apps and only the official offering.

    • And if someone writes a good app that's better than the website, that's great for everyone!

      This would be the best case scenario for everyone involved and I am keeping my fingers crossed for that. @Chris @Vilen and @yaypie, thank you for being so transparent and willing to share your thoughts on this!

      In response to @Dracula, while I do agree that the website is excellent and does perform for most use cases, an app can do some things better. One aspect would be notifications - I have to open my browser manually every time to check for notifications.

      Apps can also accomplish a lot of stuff that browsers may be handicapped to do. For example Chrome on Android does not support the rich text editor that is available on the desktop. I think this would not be an issue with apps. I use the Relay for Reddit app and it features a text editor similar to what we have here. Relay also has this slide implementation where you can toggle between links and the comments with a simple swipe which I really love. I am sure developers may come up with something similar or even newer implementations which we may not have thought of.

      Apps are also not handicapped by the bugs that browsers may have. For example, there is an issue with Chrome for Android where the screen does not scroll as you keep typing. This is an issue which makes typing longer posts on the phone more cumbersome and makes me hesitate and not want to take the effort to type something long.

    • This conversation made me think why would anyone even want an app, if not solely for enhanced GUI?

      For what it's worth, I first read this conversation and wanted to reply to you yesterday - but while the web app is great, writing text in a non-native app on a phone often comes with all sorts of problems. I waited until I was back at my desktop - which means that @Ravi beat me to mentioning notifications as one important thing that a native app handles better than a website.

      Another thing that is great on Android is how all sorts of apps can "inject" themselves into the OS level sharing dialog. If your app can handle an image, or a web URL, or even just text as input (and Cake can handle all three!), then adding this information to the "manifest" of your app allows Android to suggest your app whenever someone wants to share this type of content. This would make it very easy to start a conversation about any web page, with any image I just took on my phone, or even text I wrote in a word processor of my choice.

      Last but not least, what might also turn out to be really useful, is not a third-party generic "Cake app", but one that uses Cake's infrastructure to offer easy access to conversations about a certain topic. For example, if I'm developing a gardening app, or one for hiking enthusiasts, or a local app for a specific city, I could use Cake APIs to display existing conversations in that topic, or allow my users to create new conversations (with that topic being fixed) that are visible both within my app and for a bigger, public audience.

      There are some pitfalls that would need to be avoided - and, of course, the Cake team would need to want participating in some "Forum as a Service" business - but if done right, this could be a good thing for both Cake and the app developer.

    • I waited until I was back at my desktop

      Hahaha! Actually I took my time replying too because I wanted to login from my desktop as well! The scrolling bug is the main reason I refrain from typing detailed responses on my phone.

      You raised a great point about being able to share content into the app, that is one of Android's greater strengths.

      And the concept of offering Cake as a service with the examples in the last point is just amazing. I am not sure I was able to wrap my head around it completely, but it definitely sounds ambitious.

    • And the concept of offering Cake as a service with the examples in the last point is just amazing. I am not sure I was able to wrap my head around it completely, but it definitely sounds ambitious.

      I'm not even sure I have wrapped my head around that completely. ;) The more I think about it, though, the more sense it seems to make - so here's a more detailed explanation using one of the random examples from above just to give the idea:

      A hypothetical gardening app allows users to plan their garden, for example by adding both existing and planned plants and trees to a list, which will then create a calendar or list of things to do in the next weeks ("prune trees this month", "buy and plant X now if you want them to bloom next year", ...). These to-do list items may come with short tutorials, but might leave open some questions: How do I best prune tree X? If I take a cutting of plant Y, do I grow it in water, in soil, or wait until next year?

      These questions could be posed in some sort of forum where other app users can see them and reply - but building a whole system like that from scratch, just for a smallish special interest app, might easily become prohibitive. Enabling users to talk to each other is not a core feature of this app, so it probably won't ever be added - even though it might increase adoption (and avoid churn) to some degree.

      Now, with an open API, the app developer could do the following:

      1. On the screen for some plant X, display the top ten results of a Cake search for the name of the plant in Cake's "gardening" topic. For example, here's a discussion about roses: https://www.cake.co/conversations/Nfw8Tft/dealing-with-roses

      Just displaying these results and opening them in a web browser is an easy thing to implement, so the app developer might want to offer this for free (as long as accessing Cake's APIs to do this is free for them).

      2. Because keeping users in your app is better than leading them elsewhere, a logical next step would be to display the content of those conversations in-app as well. Getting all conversation data via API and displaying it in the app's own layout sounds like a reasonable thing to attempt as well. This would replace visits to Cake with API calls, though, so the Cake team would probably want to allow this only if it is beneficial to them (ads in conversations, ...).

      3. The user went in there with a question of their own. Not all questions will be answered by already existing conversations, so the next idea is to allow the user to post as well. Add a "Question not answered?" button to the end of the conversation list, and allow users to pose a question themselves. In this case, the user would perhaps be offered to add 4 topics to their conversation, with the fifth one always being "gardening".

      The app developer might want to offer this as a "pro" feature in a paid or ad-supported variant of their app, because properly integrating with Cake (authentication, display of available topics, proper formatting of posts, ...) sounds like something that needs a little more work - but is still easier to do than to create and maintain a forum system yourself.

      The app developer would benefit from being able to outsource some of the workload that is not central to their own app - and from having access to people that might have answers but aren't using the app themselves. Meanwhile, Cake would benefit because this gets or keeps conversations going - and perhaps because users who already use Cake somewhere are more likely to discuss other things here as well.