React To 36

Ready to Fall (Deeper) in Love?

ReactTo36 is an iPhone app made in <24 hours using Facebook’s React Native, a way to write iOS app natively, using JavaScript.

Website, App Store, GitHub.

Although it is largely a way for me to test out the new fangled technology, it was inspired by my frustration with existing apps/websites that attempts to present the 36 questions to fall in love.

And yes, the name is a pun on reacting to the 36 questions and React Native. Witty eh?

1

Background

If you didn’t know, in 1997, 5 professors published a study called: The Experimental Generation of Interpersonal Closeness: A Procedure and Some Preliminary Findings. In it, they suggests that by asking 36 questions of varying degrees of closeness, two partners can fall in love through mutual disclosure.

Then, in 2015, this study was popularized by the New York Times article: To Fall in Love With Anyone, Do This.

The premise is of course interesting and so I sought to try it out with my girlfriend. It was great. The questions were compelling and made us think hard–learning about each other and ourselves.

However, I was incredibly frustrated with figuring out what questions we were on and how we were progressing. Since the questions are designed to help you get into deep conversations, it takes quite a while to finish. After an hour of dinner, we only reached question 8.

Pain Point 1: An experience that removes you from its purpose

Of course one can easily read the questions from the article, but it’s not very efficient to always look for this article then squint to find the question you are looking for–it kind of takes you away from the experience. It’s not their fault: the article is designed to report, not for you to conduct your own study.

2

Pain Point 2: An Experience that Does NOT do the work for you.

The next step was for me to try and look for websites/app that is specifically designed to help you conduct the discussion. There are several sites, NYT included, that provides an easy to read large questions that help you conduct each question. The problem with websites, of course, is that it does not remember who you are and what questions you were on. The next time you reopen the website, you’re back to square one.

Surprisingly, even most apps in the app store does not remember what questions/tell you which question you are on.

Moreover, these apps do not allow you to jump to questions. So even if you remember which questions you were one, you would have to swipe until you find it… Terrible experience if you are on question 10+.

4

Pain Point 3: An experience that does not fit your workflow

The final big pain point for me is that most of these websites/apps are so simple that they limit your ability to use it. For example, if I wanted an overview of all the questions to see which may be the most interesting and focus on those, it would not be possible. If I forgot which question I was on, it would be impossible to see at a glance all the questions. If I wanted to skip questions and come back later to it, it would not be possible.

3

Conclusion

The present post is meant to convey why I wrote this app, and not the experience of using React Native. That may come at a later time given interest. The point is, even if you are going to whip a quick simple thing to solve some small problems, there are possibilities for little touches, and they go a long way. Simple and flexible is not necessarily opposite–we just need to find the harmony in the two.

I am sure the app could be much improved, but I would say for <24 hours of work and my first time working with iOS and React.js, I think it’s not bad. But I would love to hear from you about your pain points, and/or to help you contribute to this small yet profound experience. See the source on GitHub and Email me suggestions!

P.s: On React Native

if you really want to know how my experience with React Native was, in one word: amazing, with qualification. I lied, more than one words.

It is an amazing piece of software that gets you up and running quickly (Hello World app was <5 minutes, while on the phone…). It is an early piece of technology that has potential, but still could be improved. Here are my initial thoughts (with interest, I can write a longer post):

  • Documentation is lack luster if you don’t know what you’re doing.
    • If you have never developed with iOS, some of the terms could be daunting–especially if this is aimed for web developers (#javascript).
    • What is Navigator, and how do you use it (for example)? There is only one tutorial, and it is for one view. I used this example to learn how to use it.
    • If you have never developed with React.js (I am an Angular person atm), it may be hard(er)–learning things like: “componentDidMount” or “componentWillReceiveProps,” etc..
  • Great way to learn FlexBox surprisingly! The only tutorial on the doc is a one page view–super great though. It uses FlexBox to make things look good.
  • Sweet error codes that tells you exactly where the problem is.
    • Though sometimes I wish it would not kill the packaging server or restart it on failure.
  • No animation really–or really simple ones only. Though animations baked into iOS, such as switching views is automatic.
  • Different font weights don’t seem to work out of the box on the real iPhone. It works in the simulator though. I don’t know if this is just my problem. Even when compiling the demo app it doesn’t work on the real iPhone.
    • You have to specify like: “fontFamily: HelveticaNeue-Thin,” instead.
    • Use this to figure out font names/fonts you can use.
  • Don’t forget to remove the advertising module if you don’t want it! It is baked in to the project generator.
  • Here is a great tutorial on how to get it ready for the app store, I thought it much simpler to understand than the official doc.