Hacker News new | past | comments | ask | show | jobs | submit login
Oh shit, my weekend project turned into an App Store Best New App (2018) (tannerchristensen.com)
429 points by wallflower on Sept 19, 2019 | hide | past | favorite | 182 comments



> “Snaplight serves an extremely niche need: mine.”

There is a subtle brilliance in this sentence. With this recognition comes the permission to not try adding a mountain of features and complicating matters. Build something you will use. Solve a problem you have. Enjoy the process and accept the vulnerability that comes with shipping something to the world. Chances are good things will come of it.


I recently had a similar experience: I watch a lot of YouTube videos and I like reading through the comments. Often, comments quote specific timestamps from the video and I would find it a pain to keep scrolling between the comment section at the bottom of the page and the video at the top and then find the specific time in the video that the comment was talking about.

So, I created a Chrome extension that surfaces YouTube comments that have timestamps right below the video, around the time that the comment contains. And, then disappears it after a few seconds.

It was fun to make and in the end, it solved a very specific problem that I was facing.

Link: https://chrome.google.com/webstore/detail/youtube-timed-comm...


This is awesome, I have the exact same problem. One thing though, when I go to install the extension it asks to read and change data on youtube.com, which makes sense, but also wants permission to access my browsing history. Just wondering why this is?

http://shots.moss.io/a67bd6/Screenshot%202019-09-19%20at%201...


Chrome shows that warning if your extension requests access to the 'tabs' permission. https://developer.chrome.com/apps/permission_warnings#view_w...

In this case, it is needed to get the url and id of the tab. I'll have to go back and check if I can make do without depending on that because I agree it does not make sense for this extension to need 'access to my browsing history'. Also, I do intend to put the code up and link it in the extension description page soon, so you don't have to take my word for it!

Thanks for pointing this out.


I had a similar case... i want to be able to download interesting videos with youtube-dl in case they or me go offline but i found having to copy the url, open a command line, move the proper folder, etc, type youtube-dl and paste the url be a bit cumbersome, so i wrote a Firefox extension to do all that for me.

This is extremely specific (and i had to switch to Firefox Developer Edition to do that since the mainline one doesn't allow unsigned extensions) but it was helpful and i got to learn how to make extensions for personal use (though the whole process to call an external program was a convoluted PITA involving adding registry entries, writing Python scripts to parse JSON, etc... meh).


For a similar usecase I settled on writing a bash script along the lines of

  PARAM=`xclip -o -selection clipboard`
  notify-send downloading $PARAM
  youtube-dl $PARAM
And setting a keyboard shortcut to invoke it, so downloading is just

  CTRL+L (select URL)
  CTRL+C (copy selection)
  CTRL+ALT+D (trigger download script)


Damn Son! I have had the same issue and your solution is so face palm simple! Excellent.


This is actually not even that specific. I did the same thing a few years ago and I bet a lot of other people could use it. One lesson I learned was that writing browser extensions is quite cumbersome if you want to do something that's a little outside the normal use case.


I use tempermonkey for simple stuff like this, takes 2-5 minutes to write something without deploying full extension.


But when you click the timestamp in the comment doesn't it automatically jump the video to that point? It's worked that way for me for years...


Yes, and then you lose your place in the comments.


I think the back button might still get you back to your place in the comments, but it is a lot of page refreshes. It also messes with the progress bar you see in the thumbnail if you see the video somewhere else on the site again, you might think you didn't finish watching the video.


It does. But that also means that you have almost surely navigated away from watching the video.


Thanks for sharing.

You’re definitely not the only person who has this issue.

It’s definitely something YouTube could implement if they weren’t content with the minor tyre fix they’ve built.


You're welcome!

The only issue I have now is that I've moved on to using Firefox. So, I can't really use this extension anymore.

I guess that sounds like another 'niche problem' that needs solving.


Chrome extensions are quite trivial to port to Firefox these days. One of my colleagues built a chrome extension and had the firefox version working minutes later.


This Firefox user would love a port...


You wouldn’t be alone there either.



Oh, I wasn't aware of this. I'm going to try this out this weekend.

Thanks for sharing.


That sounds very cool. Have you heard of bilibili.com? It's a video streaming website, but where comments are timestamped and scroll overlaid on the video at that timestamp, hugely entertaining, somewhat like sitting with 1000 videojockies at the same time. Mainly Chinese language, as it's a Chinese site. Worth having a look though, similar gist.


Nice! This sounds similar to SoundCloud which allows for comments attached to timestamps (great for music, “what a chord”, “the drop here!”)


...and medium blog posts with highlights.


I wish we could combine all this stuff together regardless of media. I'd use it in a heartbeat to curate class notes and recorded lectures! Particularly with a community this would be awesome, harnessing everyone's highlighting to pull out a veritable "best of" the course, without losing any context!


If you do most of your research in-browser, you should look at u/burtonator's https://getpolarized.io/


This program is wonderful, I regularly use it for highlighting and annotating PDFs. Just imagine this with a SoundCloud-like "highlighter/annotator" for AV files thrown in the mix.


There was once a thing called Google Wave which would have got pretty close in it's proto form, and had it continued being developed probably would have allowed this and more.


Yes, just it would house all my thoughts on someone else's computer. That's a big deal-breaker for me.


Viki includes this as a regular feature. You can leave comments on timestamps, and those comments flash at the appropriate time (if you have them enabled).


Downloaded it, installed it. This is fun!


That's what Bhagvad Gita says as well. Please note these are not the exact words but this is how I remember them

कर्म करो फल की अपेक्षा मत करो जब तुम फल की अपेक्षा रखोगे तुम्हारा कर्म दूषित होगा

Translation:

Do your work, don't expect anything in return. Because when you do, your work gets corrupt.


> Do your work, don't expect anything in return. Because when you do, your work gets corrupt.

This translation doesn't seem to cover the familiar, deeper meaning of the passage. The term कर्म (karma) can refer both to work/action as well as to the principle of cause and effect (that the word 'karma' more commonly represents). My understanding is that it really talks about the purifying effect on the mind of doing your duty without expectations of being rewarded. A bit like Bushido.

This is not duty in the sense of solving your own problems and taking risks as an entrepreneur. It is more about doing the job that society (the very rigid caste-based society that is the context here) has laid out for you. The subject of the speech was Arjuna. Krishna, the speaker, was reminding Arjuna that being born a warrior it was his duty to fight in the war that he didn't want to fight in, even if it meant slaughtering his cousins who were on the opposing side.

Seen in its original context, it doesn't quite mean the same thing as what GP said.


I got the implication of "do your duty without expectation of reward", and implications of cause/effect from rohan1024's off-the-cuff translation already.

But maybe I didn't get the implication of "job that rigid-caste-based society set out for you". Which of course probably seems less sensible/ethical to many of us modern people.

One of the things that has made the religious texts that have been treasured for thousands of years succesful is how they have such expanding/multitudinous possibilities of interpretation and directions of symbolism. And they usually have been understood differently by different people at different times (as a historical fact, even if the fundamentalists want to argue otherwise).

I find that a very interesting and thought-provoking passage, that has resonances with things in other religious/spiritual traditions (unsurprisingly especially some kinds of Buddhism), but I have no interest in the "your duty is exactly what 'society' tells you it is" part. I think we have a duty to ourselves/our neighbors/humanity/god/the divine, and expecting something in return will corrupt it (and possibly ruin the outcome), but it might not be quite what 'society' is telling you it is.


To be fair, the passages in question (this verse and the next few) do talk about equanimity towards results (very Buddhist) as service towards God. However, what God seems to want in the verses happens to be what would be good for society as well.

In modern contexts, the text is jarring in many ways. Arjuna's initial argument for not wanting to kill his cousins, uncles and grandfather on the other side are that if he kills them, their women would be led astray, i.e. procreate outside the clan (not clear if willfully or made to do so without male protection) which would lead to out-of-caste progeny being born and thus the destruction of the pure family blood line. The emphasis is on the illegitimate children being the problem, not that the women would be harmed.


Not really Buddhist at all. The Buddhist (and Jain, Ajivaka etc.) view is that results don’t matter because the actions themselves don’t matter—they are delusions.

Whereas for “Hindus” (for want of a better word.), actions are of supreme importance. They are divinely ordained. What Krishna Bhagavan is saying is don’t let preoccupation with results paralyze you into inaction.

Some historians see the Gita as a rejoinder by the Vedic traditionalist to the quietism of the Shramanic movements.

As for Arjunas argument; the need for a pure family line is not that illegitimate children wouldn’t be e.g. heirs but that they would be uneligible to make the offerings (shraddha) to the deified ancestors (Pitrs. The term literally means “fathers” but it includes male and female ancestors.) Deprived of those offerings, the Pitrs would lose their place in Heaven and fall into Hell.

Incidentally this lunar fortnight is the season when Hindus perform shraddha. It is my great-grandmothers shraddha today.


> The Buddhist (and Jain, Ajivaka etc.) view is that results don’t matter because the actions themselves don’t matter—they are delusions.

That is not the Buddhist view at all. The Buddha himself spoke about skillful action vs non-skillful action. The whole eightfold path / middle way [https://en.wikipedia.org/wiki/Noble_Eightfold_Path] starts from 'Right View': that our actions have consequences, even after death.


Certainly it is better to be good than bad nevertheless even good karma has consequences which cause entanglement in samsara. The only way out is to renounce action altogether. The Aryan Eightfold Path is for the Arhat who is at an exalted but lower level than a truly enlightened Buddha.

For the Gita, action (as prescribed by dharma) is intrinsically good regardless of its content even if it ends up destroying an entire family in war. That’s the key difference.


IMO that is an incorrect understanding of Buddhism. It is not about renunciation of all action. That's the kind of early Western misunderstanding by people like Nietzsche which has painted Buddhism as rooted in nihilism and inaction.

Quoting from The Numerical Discourses of the Buddha translated by Bhikku Bodhi: These are the Buddha's words:

> "There is, brahmin, a way in which one could rightly say of me: ‘The ascetic Gotama is a proponent of non-doing.’ For I assert the non-doing of bodily, verbal, and mental misconduct; I assert the non-doing of the numerous kinds of bad unwhole- some deeds. It is in this way that one could rightly say of me: ‘The ascetic Gotama is a proponent of non-doing.’"

> "And in what way could one rightly say of me: ‘The ascetic Gotama is a proponent of deeds who teaches his Dhamma for the sake of deeds and thereby guides his disciples’? For I assert good bodily, verbal, and mental conduct; I assert the doing of the numerous kinds of wholesome deeds. It is in this way that one could rightly say of me: ‘The ascetic Gotama is a proponent of deeds who teaches his Dhamma for the sake of deeds and thereby guides his disciples.’"


And yet even in that quote Shakyamuni calls himself the ascetic Gotama. Becoming a Bhikshu or a renouncer is the entry-level to the Buddhist path. Although in other parts of Asia there were genuine Buddhist lay movements, in India Buddhism was the sangha and only the sangha. If one cannot renounce for some reason then yes it is better to do good than evil in the world but that is clearly the inferior alternative. “Right conduct” is that which brings one closer to non-doing.


> Although in other parts of Asia there were genuine Buddhist lay movements, in India Buddhism was the sangha and only the sangha.

I'm not sure this is right. The Buddha himself laid out his rules for householders (the gahatthavatta in the Anguttara Nikaya), which doesn't make sense if there was nothing but the Sangha in his time.

> If one cannot renounce for some reason then yes it is better to do good than evil in the world but that is clearly the inferior alternative. “Right conduct” is that which brings one closer to non-doing.

Do you have a source for this? Nothing I have read agrees. I have already given my source to the contrary from the Anguttara Nikaya itself.


When you say modern what you mean is W.E.I.R.D. Historically, even in the West, people thought of themselves as members of a group first. The resurgence of populism throughout the World shows that they still do.


Is it solely a W.E.I.R.D. view that women have the same agency as men and are not commodities to be protected? If it is, I'd like to think we're all W.E.I.R.D. now.


Well historically yes. Sometimes women have more agency sometimes less but it only relatively recently they’ve had the same as men. Anyway I don’t see where you are getting “commodities” here. Women are mentioned because they have babies and men don’t. Without children to carry on the family dharma, female ancestors would be just as harmed as male ones.

Elsewhere Krishna Bhagavan offers everyone explicitly including women direct access to the embodied divinity — namely, Himself.


Women are mentioned as needing protection from being misled not just because they produce babies but because they are deemed incapable of protecting themselves from out-of-caste males, morally or physically.

> Elsewhere Krishna Bhagavan offers everyone explicitly including women direct access to the embodied divinity — namely, Himself.

Oh you mean the passage (chapter 9, verse 32) in which he lists that even those of lower birth: women, vaisyas and sudras have access to him? To be clear, this leaves only brahmin and kshatriya men in the those-not-of-lower-birth or dvija or twice-born ranks.


No you are reading to much into it. Adharma is the cause. Varnasankara is the effect and Hell for the Pitrs is a further consequence of that. Arjuna (this is his view remember) thinks fratricide is adharmic and the resulting destruction of the family will lead to bad consequences for everyone not just the women.

As for 9:32 no the Gita is not egalitarian (that’s W.E.I.R.D again) but Krishna Bhagavans’ formulation while upholding the old hierarchy, creates a new hierarchy on a different axis with a different set of winners and losers.

Incidentally, you are aware I hope that according to the Ashokavadana, a Buddha can only be born in a Brahmans or Kshatriya family.


> Incidentally, you are aware I hope that according to the Ashokavadana, a Buddha can only be born in a Brahmans or Kshatriya family.

Thanks, I wasn't aware of that. Sounds exactly like the kind of thing Ashoka's minions would add to Ashoka's hagiography.

For the record, I don't take any of this stuff seriously.


"It is in action alone that you have a claim, never at any time to the fruits of such action. Never let the fruits of action be your motive; never let your attachment be to inaction." Bhagavad Gita 2:47

"Besides, considering your duty as a warrior, you should not waver. Indeed, for a warrior, there is nothing but a battle fought according to dharma." - 2.31

Further, the reason for action is held up later. This is also the quote that Oppenheimer used to describe setting off the Atomic Bomb.

"Time I am, the mighty destroyer of worlds, and I come to vanquish all living beings. Even without your participation, all the warriors on the opposite side of the battlefield will be killed.

Therefore, arise and achieve glory! Conquer your foes and enjoy a prosperous empire! O best amongst archers, all your enemies have already been killed by Me – you are but an instrument.

Drona. Bhisma, Jayadratha, Karna and other heroic soldiers have already been killed by Me. Fear not – fight! You will certainly conquer your enemy in this battle." - 11.32-11.35

Not to simplify the complexity of the Gita but what I take from it is: We can only take action and in the long run everyone is dead so why not take righteous action along the lines of what you are good at and thus fulfill your duty to society and God.

Furthermore, the rigidity of the caste system is a modern invention. It occurred during British Rule (https://press.princeton.edu/titles/7191.html).


Sheesh are people still quoting that post-modern gibberish? No “colonialism” didn’t cause the rigidity of the caste system except incidentally.

Social mobility in traditional India did occur but very slowly and at the group level for the most part. How it worked is an upcoming group would adopt elite behaviors e.g. vegetarianism, Sanskrit, their Gods would be equated with those of the high tradition and so on. Over time no one in the group or its neighbors would remember that they had ever behaved otherwise. Voila, upward mobility.

The printing press changed that. Now when you say I am Y, someone can point out “but it says here that a century ago you were X.” Same effect with archaeology, genetics etc.

Historically, the British brought in these technologies but in an alternative timeline where Clive lost at Plessy, the same process would eventually have occurred. It benefits both the far left and far right to find a scapegoat instead.


I think you are basically paraphrasing what the book says. :)

The technologies that the British brought through colonialism, including their own class structure, lead to what you described. It likely would have happened without the British but because of the power structures in place that came with colonial rule. This process accelerated so a lot of the rigidity that we can attribute now was the upper castes trying to hold onto their power which was magnified by the British giving them more power in colonial India.

It is also why it was the upper caste Hindus that eventually rebelled against British rule. They received the best economic and political benefit from British rule.


That doesn’t follow. Take Dr. Ambedkars neo-Buddhist movement for instance. By calling themselves Buddhist, upwardly mobile untouchables could identify with a socially prestigious “world religion” that was still identifiably Indian. Never mind that there was no connection to actual historical Indian Buddhism which had gone extinct centuries earlier. But it could be recovered (or reimagined) from books. Read his works and you will see that he appeals to and rebels against colonialist notions just like any other contemporary Indian thinker. To assume it was all about upper castes and the British is more trendy academic bullshit IMO.


Ambedkar was a response to Gandhi and his caste Hindu movement. The Independence movement is split into three groups: 1) Upper Caste Hindus 2) Untouchables (or Harijans as Gandhi called them) 3) Muslims. Most untouchables did not like Gandhi because he sought to keep the caste power structure, hence the response from Ambedkar to escape that hierarchy altogether by moving to Buddhism.

The initial organized independence movements which were largely confined to Bengal during the 1900-1918 timeframe were very much an upper-caste movement.


> We can only take action and in the long run everyone is dead so why not take righteous action along the lines of what you are good at and thus fulfill your duty to society and God.

If we're all dead in the long run, why bother with righteous action now?


I came up with translation. Duty is the better word instead of work.


Yes, it’s an old proverb.

“Necessity is the mother of invention”

https://en.wikipedia.org/wiki/Necessity_is_the_mother_of_inv...


Whenever I hear that I'm always reminded of my father saying 'We put a man on the moon before we put wheels on a suitcase'


Perhaps wheels on a suitcase required modern plastics?


I think that the first wheeled suitcases used indoor roller skate wheels. So the parts were readily available for a long time before wheeled suitcases.

But early airports didn't have miles of corridors and a hundred gates, so maybe the need wasn't as great.


We had wheels on cars, baby strollers, and bikes before the moon landing.

The cold war re-prioritized life for many Americans (and Russians, too I'm sure)


... because wheels necessitate plastic.


>With this recognition comes the permission to not try adding a mountain of features and complicating matters.

Well, yeah. The only thing that’s surprising about this is that the opposite has gotten so engrained. We are so accustomed to an attitude that (without the niceties of professionalism) is basically “who the fuck are you, nerd, to have the audacity to think you understand user needs? You’re weird and nobody wants what you want from software.”


Isn't that the whole world of one-off github repos though?

Here's my world-famous Python tool for Monte Carlo sensitivity analysis of Excel sheets depending on expert estimates: https://github.com/asemic-horizon/stanton

And my extremely unrequested extension for expert estimates that may be correlated: https://github.com/asemic-horizon/multibeta


I wonder about this...

The Tesla model 3 has no dashboard in your line of sight, and Elon Musk says he builds something he likes and hope others will too.

But the car has sold well in spite of the fact that many owners I've talked to said this was a big compromise for them.


Something something eat your own dogfood.


drink your own champagne works..


No no - that's in startups coasting on VC money. In places trying to actually get something done - it's dog food :)


*Non-programmers need not apply


Chances are NOT good that things will come of it. There's a million useless projects for every one post like this. There's a lot more work than just building it.


On the other hand, you do have to be in it to win it.


I think that's GP's point: do not publish it expecting it to lead to good things, because the chances are so good - they're not. Publish it because it solves a problem for you, and because it's little effort, so might as well.

I do that a lot. Pretty much every one of them is used practically only by me. That's fine, because that was my expectation anyway.


> "All-in-all the project took me an hour to program"

Come on, it's more than that. Being compliant to Apple Developer Guidelines takes some more time.


Totally agree, it's like saying that it took Usain Bolt 9.58 seconds to set the new 100m world record.


Probably took 1000x that before the process finally gave him his medal.


Surely more than a couple of hours


Humblebrag is strong in this sentence. The post is full of it but this is the worst offender.


That's a strange statement. It's a very simple app, which specific guidelines do you think should have taken significant time for him to write code that complies to?

In my experience the guidelines are mostly common sense once you get used to the "Apple way", and are straightforward to comply with, especially if you're already familiar with them (OP had submitted several apps before).


still, claiming to hacking a mobile app together in one hour is something strange as well. Does the "hour of code" includes setting up project in the IDE, setting a repo, testing it, making it AppStore-ready?

Options are:

a. you have already the code somewhere (own sources, StackOverflow, GitHub, etc.) b. you are bluffing


I could believe it if you counted only the time taken to type just literal code. Probably discounted the time it would take to build the UI .xib, wire up all the event-handler delegates, and set all your layout constraints for the various screen sizes.

And doesn't this use the camera and/or photos API? Not hard, but somewhat time consuming to set up your boilerplate for these. Also handling permissions request, response, & error handling. Probably copy/pasted from another project so it wouldn't count?

Yeah I'm skeptical, but also sounds like a fun challenge.


Load xcode, create a project, setup a repo can take 10 seconds. I just did it. Testing it takes longer. You can create a blank app and install it on a phone in 30 seconds. It really is that quick.

Of course, writing it in 1 hour is a bit ridiculous. Did he have the icon images ready?


The article states that icons and other polish is excluded from that time and were done later.


Setting up a project in the IDE takes maybe a couple minuites at worst.

you wouldn't bother making a repo for something like this. Testing is done while programming, and the process of putting it on the app store presumably wasn't counted as 'programming'


Does it even? Last time I checked, it took <1 minute to launch xcode, use a template and deploy it to a device (assuming you're set up to develop already). Every IDE I've used in the last decade will detect "hey, you're starting a new project, would you like a git repo?"


My first app store submission was a challenge to go from idea to submitted app on one laptop battery charge (2-3 hours?) and was approved on the first try, so it’s definitely possible.


Sounds like you need a new laptop


> setting a repo

`git init`? Clicking create repo in GitHub?

> setting up project in the IDE

are you doing this stuff blindfolded or something?


you forgot the "git remote add" part. That takes a couple of minutes


I'm supposing that he naturally made the project appstore ready because he knew what the requirements for that were, as in he did not write what he needed and then fixed it, he instead did not write anything that went out of guidelines.

As far as the other stuff, this reminds me of recruiters who send you a coding project that they say will take 2-3 hours that generally takes 4-6 if there isn't some major problem. The extra time is of course setting everything up choosing what dependencies you need etc, because every project is slightly different and you are unlikely to have everything that is needed for that one project. The actual coding is probably 2-3 hours.

So perhaps he already had everything his system needed, if so I expect it might have taken 1 hour to code (because he was very comfortable and knew exactly what he would need to do) and some minutes to make git repo, push code. Then add another hour to time compiling and submitting to app store.

If he knew what he needed to do in the code of course that was probably from thinking about it for weeks beforehand.


There are many open source project which have drag and drop gesture and all the needed feature.

He just might have to combine two projects and some programming and replacement of icons.


I have no experience with iOS development but I do have in Android, and in Android it is quite possible and even uneventful to put together an application that allows users to navigate through half a dozen activities and fragments in about an hour of work.


Where do you draw the line?

Does the 1hr include the hour you spent driving to the shop and back for a loaf of bread and a bottle of milk?


This is accurate. I should have possibly mentioned in more detail that at the time I had a lot of experience with prior apps, so whipping another one together—particularly for such a simple concept—is trivial.

I’m surprised anyone here thinks something like Snaplight would take more than an hour to build (no repos, testing on device but otherwise no tests, simple permissions, uncomplicated UI that only improved post-launch, etc.).


> I’m surprised anyone here thinks something like Snaplight would take more than an hour to build

I think it would take me longer just to make the icon, having never done anything like that before.

Think about all the skills you had previously built up that allowed you to make it in an hour. If someone lacks even one of them, they would never be able to do it so quickly.


Likely just used some stock icons or had previously designed them for another project and never used them.


I’m a full-time designer and designed everything in the app from scratch.


Hi Tanner, big fan of your design portfolio. As a fellow designer, what inspired/motivated you to make the jump into learning how to code?

Was it simply scratching the itch to make higher fidelity prototypes?

PS- should designers code? ;)


Thank you for the kind words!

I started coding long, long ago in order to build my web portfolio (back before site builders were a thing). As a result I saw how empowering coding can be.

I've always felt being able to code software gives you an ability to solve a lot of your own problems with technology. e.g. I have a lot of private tools I've designed and coded to help me in my day job (such as this simple one I recently open sourced: https://tannerchristensen.com/spf).

If you're a designer who works on digital products, I think it's only advantageous to know some programming. It gives you empathy for your engineering peers, gives you more insight into how what you design will actually get built (and the constraints/advantages of the technology), and helps you see problems in different—often more linear and logical—ways.

Learning to code is not for everyone, but learning a little can go a long way. At least learning the basics of code structure, loops, memory allocation and management, etc. would be my suggestion.


The author noted that it was his fifth app, so it's likely that he had the knowledge and patterns/libraries/boilerplate etc. already in place.


I think it's perfectly fair to say "this took me an hour", but statements like this always come with history. Dude probably spent at least hundreds of hours getting proficient at programming, app design and iOS development specifically.

I don't know if that's misleading, encouraging or simply talking to a specific target group.


Yes this "1h", if true at all, reminds me of this story:

> It always reminds me of the story about the woman who approached Picasso in a restaurant, asked him to scribble something on a napkin, and said she would be happy to pay whatever he felt it was worth. Picasso complied and then said, “That will be $10,000.”

> “But you did that in thirty seconds,” the astonished woman replied.

> “No,” Picasso said. “It has taken me forty years to do that.”


I think it's both highly encouraging and humbling. What it means is that even though his skills could allow him to work on much fancier, complex applications, this simple 1 hour job made an enormous impact. Just think about what you do best and imagine if you could redirect the same energies somewhere else and maximize your payoff with a minimum of effort. It's not a feat that's easy to reproduce, but it is something we can all learn from.


sure, but for me the "All-in-all" means multiple screen resolutions support, permissions to access Camera and Storage and so on.


> multiple screen resolutions support

This isn’t hard if you use anything that’s not manual layout.

> permissions to access Camera and Storage and so on

A couple of Info.plist keys.


But then the app went on for years after without the required feature corrections to make it work as he wanted. Clearly that 1 hour productivity volcano drained out after existing templates were exhausted.


I'd say that normally you have to go out of the way to not be compliant.


Just to be clear: the app makes ~20 downloads per day (checked on App Annie premium and Sensor Tower premium) except for the fact that you change the price from paid to free multiple times, causing multiple spikes in downloads generated by sites like https://www.148apps.com/ and https://appadvice.com/apps-gone-free which basically list all apps that have become free from paid.

So claiming `about 10,000 downloads each week` is not very correct.


The 10,000 number was true at the time the article was written, it’s since fallen even lower than 20 downloads a day last I checked.


"Update: As of March 2017, two years after launching Snaplight, it’s still going strong with about 10,000 downloads each week."

Did you check the numbers for that period or for the current period?


I assume that the author has better visibility to actual download numbers than App Annie or Sensor Tower. I assume they just got the number from the App Store connect.

That is, apple highlights are massively more impactful that any other venue. My app had reviews in multiple publications and I average about 200 downloads per week, at around 4500 impressions. It got featured once in some list (in Thailand) and I got about 1 million impressions per day. Sadly, the app was paid (and not translated) at the time so no sales.

10k downloads per week is legitimately impressive for this kind of app. Kudos


I work on models like those of Sensor Tower and App Annie use to estimate downloads. They are extremely precise, the cross-validated error is << 10% for apps that are this small, and in the US (it increases with much bigger apps in countries where little data is available).


In general, could you tell a bit about how do app downloads get estimated? Now that I'm thinking about it, I think the first way to do it is to correlate the amount of comments in your particular app section to downloads numbers that you do know and extrapolate that out, assuming that comments/downloads ratio stay the same within a particular app category.

One could test this hypothesis out on different YouTube video categories for which this obviously is known to give the assumption some quick strength or falsification.

Anyways, this is the first time I'm thinking about this question at all. I'm curious what you're allowed/able to tell us.


There is a public ranking of apps ranked by downloads in the app store. If you know how many downloads correspond to what position in the chart (e.g. number 100 makes ~1000 downloads), you can fit a log regression to determine the number of downloads given the ranking in the category. I am oversimplifying because you also need to take into account seasonality and time trends (e.g. the app store is always expanding), but overall fits are very very precise (unless you get near the top positions, which are those for which they have more problems in estimating). Ah, and if you wonder where the data comes from, App Annie and Sensor Tower get data for downloads to fit their models directly from tens of thousands of developers that share it with them in exchange for free analytics,


For Android apps that are popular in rest-of-world geographies (including my own) those tools (and analogs like similarweb and apptopia) are way off in both download counts and active users, sometimes by 2-3x.

Maybe iOS apps in US can get here but I'm doubtful.


Comparing our app’s sales against Sensor Tower’s numbers, we’ve found it off by way more than 10%.


Woah... no sales on 1 million impressions?!

I understand the context, but still.


Yep, that's why I really don't agree with the point 3 of this article.

> 3. Don’t be afraid to ask for money

Only ask for money if you know you will get major coverage (either Apple placement in a feature in a country speaking a language that your app supports, or general public publications).

After switching to freemium model I earn more money per month than with a paid app during a year.

Another thing is, the author cites their app as a niche app but it is actually something a very large amount of people want. This helps _a lot_. Good, complex, apps are few on the App Store because apps must be free or very cheap.


> Only ask for money if you know you will get major coverage.

Or just ask for money if it fits in organically with your product and audience.

We build a camera app. We considered freemium, but couldn’t find a way to lock features without compromising the intended experience.

It also acts as a bit of a filter, as people do research before paying for an app. We suspect that if we were free, we’d have to contend with more support requests for things like video recording, which isn’t the use case for the app.


I agree, sometimes a freemium model is not viable, like in your case. And paid users are definitely more involved so they usually ask better questions if they have any.

Nevertheless, I believe that for a paid app, one needs good media coverage to be successful. Since there are no trials, there is not much the users can do to test the app before purchasing. (I think many people actually don't know that they can get refunds)


Oh shit, you made Halide! Great app, thanks!

Anecdotal experience: bought it knowing that it doesn't record video, got exactly what I expected.

Really looking forward to a new phone so I can take advantage of the exciting new stuff, but I hear the 12 Pro might shrink to a 5.4" screen so I'm going to try and hold out. Once that happens I don't know if I'll touch my SLR again - it's already seeing minimal use because the phone is much more convenient.


Thanks!


if i understand freemium correctly, you give the "core" for free and charge for additional features, or are you talking about ads ?


Free app with in-app purchase that unlocks more functionality.


I went to check this actually and found out that what I told was inaccurate.

I got a million impression in a week, not per day. The app was featured for about a week and got ~100k impressions per day.


> the app makes ~20 downloads per day

That's enough to be ramen-profitable, I suppose.


It's a free app though.


I know at least a few apps that show little to no downloads on App Annie and Sensor Tower, yet their authors drive lambos. I wouldn't trust these two. Funny how office workers pop their heads up to point out the failure of someone who built something.


How do you know their wealth came from the apps?


Any chance you could name those apps?


> All-in-all the project took me an hour to program

That's amazing. I don't think I've ever written anything usable in an hour.


He's working in a space he has mastery. Like, look at this legend with his live note taking of Inkscape + Latex. I would have been like two orders of magnitude slower https://castel.dev/post/lecture-notes-2/


Unrelated to op, never seen this link before, super cool thanks for sharing.


That is amazing.

One thing I often see is that enthusiasts and professionals spend too much of their life and energy working with an inferior set of tools such that they are very dismissive of people expressing themselves faster with a better set of tools, solely because the discipline is no longer required

I am personally all for people being able to express themselves more effectively


As an enthusiast and a professional, I see a lot of people spending more time building a "better" set of tools and/or arguing about the merits of various trendy tools (hello HN) than actually writing code.

If all you ever do is the same kind of thing over and over again (say, build CRUD web apps with the same stack), then sure, go nuts and optimize so you can deploy with a single button press from your IDE. But if you're in a role where the stuff you build varies wildly -- say, any type of startup where you are the dev team or a significant fraction of it -- then diminishing returns sets in very fast.

Mandatory XKCD: https://xkcd.com/1205/


The beauty of selling tooling is that if you can sell the tooling, the "how often you do task" is multiplied by number of customers and so you get way more value.


> As of March 2017, two years after launching Snaplight, it’s still going strong with about 10,000 downloads each week.

Wow. I've been hearing for years that the gold rush of 99 cent apps on the App Store was done for, but this kinda gives me hope. I might get around to finally finishing any app I've worked on...


Snaplight is a free app though, so while the 10k number is high I think it would be hardly reached if he had placed a 99 cent tag on it, given the niche. Some people (me included) like to download and try new apps, only to remove them after the utility hasn't proven valuable enough.

That shouldn't stop you from finishing your app though. Building and later publishing an app to your audience can be an awesome experience. Go for it!


From the original screenshot in the post, it looks like it debuted at $0.99, I wonder if there's a way to look up App Store price history


You're right, totally missed from the screenshot and based my comment on the current App Store data.

I looked the app on Appannie (non paid account) and the pricing history is quite interesting:

26 Mar 2017 - 0.99 to Free

29 Mar 2017 - Free to 0.99

19 Jul 2017 - 0.99 to 1.99

20 Jul 2017 - 1.99 to Free

02 Aug 2017 - Free to 0.99

04 Feb 2018 - 0.99 to Free

10 Feb 2018 - Free to 0.99

03 Mar 2018 - 0.99 to Free

27 Mar 2018 - Free to 0.99

04 Dec 2018 - 0.99 to Free

03 May 2019 - Free to 0.99

05 Sep 2019 - 0.99 to Free

From the above details, it was a paid app for most of it's time. I wonder why the developer played with the pricing as much though?


I just looked at the lifetime stats for the app and in total it only ever generated ~$4,000 in profit.

I would often change the price to 1. See if I could squeeze a few more dollars out of the work and 2. Generate more downloads.

A fun "trick" for getting more downloads is to temporarily make a paid app free, as many, many people follow "Apps Gone Free" type of bots or directories and if your app has any substantial numbers behind it more people tend to notice when it switches to free.


Probably to allow it to pick up some steam when sales slow down


That looks like just generating numbers for income models to predict what might work best.


In the spirit of the discussion, maybe there's an opportunity for an app that does that ...


I'm not sure if it is still the case, or if my memory is lying to me, but I think AppAnnie did/does this.


You should look at how old this all is. The app was released in 2015 and last updated over a year ago. The app climate has changed a lot over the past four years so take it with a grain of salt.


I definitely will. Still, the article was written last year and I've been hearing that the gold rush is over since way before 2015.


Article is from 2015, not 2018. Title is incorrect.


You should follow the link to the AppStore where it says:

“This app is no longer supported by the developer“

https://apps.apple.com/us/app/snaplight-photo-highlighter/id...

He probably got 10,000 downloads a week while he was featured on that page then dropped to almost zero. Millions of apps in the store means you won’t get much random traffic.


I only recently (as of a few weeks ago) stopped fully supporting my apps because I want to invest more time in other efforts.

I made a comment elsewhere here (and updated the article to state) that downloads currently are around 40 each week, with an occasional bubble of a few thousand when a blogger or news site re-discovers the app.


I was shocked seeing 10,000 downloads per week for a paid app but it appears to be free now and “no longer supported by the developer”.


The year should say 2015. Would be nice to know some more stats, maybe a downloads graph? When was is made free, and why?


I had a similar itch and built a similar app, except snippets are captured as searchable text and organised by books [1]. It was only ever my second app and app building for me is as much about the journey as the destination so it took me a lot longer than 1h/24h.

I agree with the premise of the article ie build small, monetize, learn.

Other lessons I've learned: Promotion is harder than building. It's pretty hard to get more than a few downloads per day. Free or not, once it's out there your users will make demands. I got emails from all over the world requesting all sorts of new features. Simple is better. Almost all feedback I got was that the app did one thing well (actually good enough). Try different monetisation strategies.

[1] Key Passages https://apps.apple.com/us/app/key-passages-study-assistant/i...


While the article was last updated 2018, I think 2015 is more appropriate.


There's a strange double-scrollbar in the #content div, that makes viewing on a desktop a little awkward

(Chrome/ Win10)


Which could be easily fixed by setting the body height from 100% to 100vh.


I don't know if it's that or something else, but scrolling is also altered/inhibited with Firefox on iOS. Luckily, reader mode "fixes" it.


Thanks for flagging, just updated the CSS and hopefully it resolved the issue!


> I held my place in the book with one hand while thumbing through the app store on my phone in the other, unable to find an app that could accomplish what I was looking for. Then an idea suddenly struck me: I could easily create — or try to create — an app that allows me to highlight and share quotes from the books I’m reading.

This, my dear, is what an application should be created for -- To help resolve real problems and improve lives.

"Best New App" is well desired.


Interesting how the current version only has 5 ratings, but the author at the time says it received 10,000 per week. We would never know this and could never be able to assign validation to this app from the metrics we see in passing

I find that interesting


I've had an app that kind of blew up and grew to thousands of users in several weeks and then reach top 200 Lifestyle Apps on Appstore. It also had more than 100 ratings with an avg rating of 4.6. However I stopped updating a long time ago and removed it from Appstore, I noticed basically that old ratings get erased after version updates to the app which I guess make sense as it ensures reviews are actually of the current version of the app so.I guess Snaplight just died in popularity after several updates.


This makes sense in a way, but also seems like it has bad incentives for developers.


“This app is no longer supported by the developer“


I wonder how much the app name and icon contributed to the success. The name is unique while still having the know "snap" as trigger in there, and the icon is also quite neat and clean.


The video was also very good, I imagine Apple wants to promote apps that have nice intros.


Wow thank you! I’ve always disliked the icon I came up for this, and I hadn’t ever considered the “Snap” as relation to the app/company aspect to the name (I just liked the idea of “snap”ping a photo and highlighting it.


Wow this is actually scratching an itch of mine now. I love the kindle feature of saving / sharing quotes and have been wanting something for offline. Awesome work Tanner!


It makes me sad that features are now paid apps. Imagine if every tool in GIMP was a separate app.

This app should be a feature of a default Paint-like app.


In some ways I think this is the environment Apple has cultivated (maybe not deliberately) over the years. Basic features like cut & paste are left out, and then announced in a later version to as though it's this great innovation. Not that this particular app is such a basic feature, but illustrates the reasons why there are so many single-function utility apps. And of course the danger of them for their developers, if they rely on them for their livelihood, is that Apple will at any moment swoop in and copy the most popular ones. For the record, I'm not sure there's anything wrong with that on its own, but there is when Apple doesn't let developers access iOS as deeply as they do themselves.


i would love it if every tool in gimp was a separate command-line tool all stitched together by one GUI wrapper app that unifies all of them. imagine being able to use gimp's skew tool on an image from inside a bash script.


It’s free, go download it if it’s useful to you :)


I don't know what troubles me more:

1. a clearly-expert developer bragging about 1 hour to write hit app then telling everyone to basically live the dream chicken soup for the soul bs

2. people who experience increased anxiety from said wampeter/foma/granfalloon* because they haven't wildly succeeded

My brain to me: Welcome to 2019.

* See: Kurt Vonnegut


Sounds cool, but the scratch your itch advice isn't for everyone. Most everything I would want as an app, maybe 1% of the population would every even consider using, and that's assuming they knew about it.


Isn't that the point of the statement though? You do it for yourself, not because anyone else at all might want to use it. Then if you toss it up on the app store and anyone does actually use it, it's just a happy upside.


It would make more sense if the example were of an app no one ever knew about, if that really was the case. His app provided more of a counterexample, if what you're saying is true.


I took the fact that his app became popular as a happy accident. That he made it mostly to satisfy himself, because he was, in his words, "scratching his own itch". That it worked out on the app store was just a nice benefit, but not really part of the motivation. Or such was my interpretation, maybe I have it wrong.


Exactly right.


I sometimes wonder about this. Do we really have unique needs that few others would need, or is it just that we lack the imagination to fully appreciate how huge the population is?

Maybe only 0.001% of people need it, but that's still tens of thousands of people.


What if you don't have any itch? Seriously.


That's okay, and there's no shame in working a 9 to 5 job in that case. Not everyone is cut out to (nor should) be an entrepreneur.


Sometimes you can scratch an itch of someone you know.


[flagged]


[flagged]


Do they have superior perspectives? No, but they have different perspectives.

Additionally minority groups tend to be aware of majority problems, points of views, etc; while the inverse is generally not true.

That is to say a black man generally knows the struggles of a white man, but a white man is often ignorant of a black mans.

This is because society caters to the majority, so most news, media, etc is from the perspective of the majority. LGBT folk have a pretty good understanding of what dating is like for cishet people because their friends tell them, tv tells them, the news tells them. Meanwhile most cishet folk are unaware of the unique issues of dating in the LGBT community.


It seems obviously true that the majority of people from tech are white.

Beyond that it isn't much of a stretch that the 'average' experience of a white man from suburbia is different from that of a black man from suburbia.


I always felt that phrase was an ugly affirmation of the phenomenon and consequences of "white flight" [1]. Almost like the meaning conveyed is "there only are white men in suburbia, duh".

[1] https://en.wikipedia.org/wiki/White_flight


Hunblebrag much?


I don’t think this is a humblebrag. It’s a success story, and we should celebrate those. There’s nothing wrong with being excited about something turning into more of a success than expected, and there are a lot of general values in the post that may be broadly encouraging to folks here.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: