iOS vs. Android: The Case for iOS

iphones

Last week my co-founder Brandon laid out the case for Android. While I agree that Android has some benefits like customizability, there are a few key factors that put the iPhone ahead.

Reliability & Smoothness

The iPhone is a reliable machine that runs at about the same performance throughout its lifetime. There’s a reason iPhone users rarely turn off their phone, and that’s because it performs reliably even after heavy usage. With reliability comes a consistent user experience, providing a smooth user interface. With Android, I’ve seen many phones start out zippy but degrade over time or lag periodically.

Updates

Apple has done a great service to developers and users alike by essentially forcing you to update your phone. Updates are simple on the iPhone, and users are quick to update iOS for new features. For developers, this means they don’t have to support the older versions of iOS, which increases time spent on things that matter. Android phones usually are customized on a phone-by-phone basis, meaning the version of Android they run becomes outdated and doesn’t get updated as frequently, which is bad for developers and users alike and probably only good for new phone sales.

Simplicity

iOS is very consistent and simple across apps. Apple’s design standard has made apps converge on “best” practices (sometimes they might not be the best, but they’re common). An example of this is swiping on an item in a list. The home screen on iOS is quite simple, where each app gets its own space. The counter-point for Android is customizability, but that comes at the expense of simplicity. Personally, I like an environment to be plug and play, where I can start using something and be productive in a matter of minutes and continue to be productive over time. iOS does this well.

Other Benefits

  • Quality of apps (largely due to Apple screening every app in the App Store)
  • Integration with Mac. If you use a MacBook, you’ll agree that some of the desktop apps don’t feel complete unless they’re used with the phone (i.e. Messages, Notes, etc.).
  • The lure of Android is always there to explore something unfamiliar, but I’m a “no-nonsense” user, so you can leave me here…I’ll be ok.

What are you favorite or least-favorite parts about owning an iPhone or an Android? Let us know in the comments below!

Sincerely,
Matt from the Bunch

Goodbye Singletons, Hello Dependency Injection

Learning software engineering is a process of biting your tongue.  You learn a new concept and revel in the abilities it gives you, and then shortly thereafter, you’re looking at your old code thinking, “did I write that?”  As a nine-month-old iOS developer, I’m still learning tons.

When I started, I saw singletons in iOS as a good thing.  They are easy to use (pretty much one line of code and you can access your class anywhere), but they come with a lot of baggage.  I don’t hold the view that singletons are to be completely avoided, but they should be carefully considered.

The main reason I try to avoid singletons now is because the code using the singleton now has a dependency on the singleton class.  If the singleton class changes, it has to be swapped out everywhere it’s used.  Additionally, singletons make testing difficult, because they have to be spun up when testing classes that use them.  Sometimes, this may not be possible in the testing context, and now you’re stuck with untestable code.

Dependency injection to the rescue.  I started learning about dependency injection while working on a Java Spring Boot application (dependency injection is a core concept in Spring) in my day job.  Dependency injection requires you to pass dependencies used by the calling class through the constructor; alternatively, the dependencies can be properties of the class and set by a dependency injection framework.

Now, since we pass the dependency through the constructor, we could pass a mock class through the constructor too that is the same type as the dependency, allowing us to test the class without spinning up an instance of the actual dependency.  Usually, your dependencies are based off a protocol in Swift (or interface in Java), which allows you to easily create mock classes for testing purposes.  Ah, finally your code can be testable again.

Dependency injection isn’t a complex subject, you just need to get in the mindset of using it, and you will reap the rewards.

Happy coding!
Matt from The Bunch

4 Woes of Organizing a Meal

When beginning to solve a problem, a great place to start is the pain points–the frustrations people have with the current process.  LunchBunch started because of the pain points encountered when grabbing a meal with friends–these were our motivation to create the app.  I’ll address them from my perspective, and hopefully you can relate:

  1. Eating alone or with the same people every day.  I don’t plan who I am going to eat with, so when lunch rolls around at college (now at work), I need to make plans.  Usually this involves texting people who either don’t respond in time or who already have eaten.  Sometimes this results in eating alone, or if I’m with people in class or at work before lunch, we’ll end up going… for the 3rd time this week.  While eating with people I sit with may be easy, there are plenty of friends who I don’t see as often and would love to catch up with.  LunchBunch is the tool that tells me if these friends are available for lunch before it’s too late.  And hey, if you want to eat with the same people every day, LunchBunch will help you organize those meals too!
  2. Organizing a group for lunch is an unwieldy process.  I can create a group message about lunch, but then other people join, maybe some people aren’t in my contacts, and sometimes I end up texting on 5 different threads about the same plans.  LunchBunch consolidates this into one invitation that clearly shows who’s going and where and when we are meeting.  Once the meal is over, the invitation disappears, so I don’t need to worry about clutter in the app.
  3. Not remembering who I want to eat lunch with.  There are many people who I’d love to get a meal with, but I think about it before I go to sleep, not when it’s helpful–before lunch.  With bunches, I can easily group which people I want to get lunch with and broadcast to them first. If they aren’t available, I can edit my broadcast to include everyone else.  Or I can broadcast to everyone from the get go; whatever mood I’m in, LunchBunch makes it simple.
  4. Choosing where to get lunch. Soon, LunchBunch will be partnering with restaurants to make it easier for my buddies and me to decide where to eat.  I’ll be able to see local restaurants and the specials they’re offering–great if I’m on a budget but still want to go out with friends.

What pain points do you encounter when trying to grab a meal with others?  Share in the comments, and maybe LunchBunch can help to solve your lunchtime laments and dinner distresses!

Sincerely,
Matt from The Bunch

How to use LunchBunch Effectively

Introduction

Here at LunchBunch, we care about genuine relationships that are forged over face-to-face interaction and quality time spent with others.  Lunches (and other meals) are perfect times for this.

Planning meals is hard, and there are plenty of uncertain ones. For those times when you don’t have a plan, you probably want to know who’s available, and the awesome thing is that they want to know the exact same thing. LunchBunch is designed to find who is available right now to grab a meal with you, so you’ll know exactly the people to eat with.

Tips

1. Use the app with buddies

What are buddies you ask? They are your friends in real life—LunchBunch refers to them as buddies.

Currently, you can add buddies by username (just ask them for it!) or phone number (which LunchBunch can get from your contacts if you want).  If the phone number doesn’t match a user, we’ll ask if you want to text them about LunchBunch.

Having more buddies on LunchBunch means a better chance you’ll find people available for lunch when you’re hungry!

2. Make a bunch (or two)

A bunch is simply a group of buddies that only you can see.  You’ll see why these are useful in tip #3.

Useful bunch names might be “Best Friends 👯”, “Just Met 👋”, “Coworkers”, etc.

(Pro Tip: USE EMOJIS LIKE THERE’S SNOW TOMORROW ❄️⛄️❄️)

3. Broadcast when you’re looking for people to eat with

The broadcast button is on the main screen. It’s the big button on that screen when you open the app.  When you broadcast, you choose all the buddies who you want to eat with.  If those people also choose you in their broadcast, you will see them as a Hungry Buddy (see tip #4).  You can edit your broadcast at any time if you want to see if more people are available for a meal.

Like I said, when you broadcast, you are choosing buddies, however, this is done by selecting bunches.  Selecting a bunch is a convenient way to say, “I want to eat with anyone in this group of people.”  You will see selected buddies before they are broadcasted to, so feel free to check and uncheck multiple bunches.

(Pro Tip: On iOS—and coming soon to Android—you can select and hide individual buddies, so you can broadcast to a bunch plus or minus a few people if you want).

4. Invite some hungry buddies

Once you’ve broadcasted, you’ll see hungry buddies who have selected you in their broadcast.  Now you can select any number of hungry buddies to start an invitation with (see tip #5).

5. Plan lunch with ease using invitations

Invitations are messages designed for organizing meals. They include text messages as well as the start time and location of the meal. An invitation is editable so that it stays updated as your plans change.  Additionally, members can RSVP so you know who will be there.  You can also add any of your buddies (hungry or not) to an invitation.

(Note: If you add a buddy, they’ll only see messages from when they were added onward).

6. Stop broadcasting when you are done making plans

LunchBunch will be most effective this way!  If people see you as hungry when you aren’t, then they may not be sure when you actually are hungry.


See our FAQ for more info!

If you have any questions, feature requests, or words of encouragement, please leave them in the comments below!  All other complaints can be directed to our monkey–we promise he’s listening! 🙉

Sincerely,
Matt from The Bunch

The LunchBunch Story

Every story starts somewhere. As far as I can remember, ours started in James Smith Hall 407A at the University of Delaware sometime in 2014. I was in my dorm room a little before noon, not having any classes until after lunch (ah, the luxury). I was looking through my contacts list on my phone for friends to text to grab lunch. I scrolled past high school friends, family members, professional contacts, and college friends here or there, but looking through 500 contacts isn’t an exciting process. This was the first pain point—wishing I could group my contacts into people I would actually text for lunch. (Obviously, with smart phones, there are apps out there to group your contacts, but oddly enough, iOS doesn’t have this built in). I would put my college friends in there and maybe call it “Lunch Group”, or even better–wait for it…“Lunch Bunch.”

Now, I could just look in that list and text them when I wanted to get lunch. However, out of those people I texted, some would be in class, others would have lunch plans, and for those who didn’t, some simply would ignore or not see the text until after lunch. Now wouldn’t it be great if I could magically know which of my friends were in the same situation as me? I guess that would require some super power, some sensing ability to sniff out someone without lunch plans yet.

One night over winter break, some friends and I were wondering who else was in the area and looking for something to do. This reminded me of my lunch dilemma. Brandon’s eyes lit up, and he had the idea to make the app. Brandon was definitely the reason LunchBunch started; his excitement is what kindled the idea to the first prototype.

Brandon and I, along with another good friend, tried out LunchBunch for the first time at HopHacks in January 2015. We didn’t win anything, but we had made our first Android app with a Firebase backend. With school ramping up again, we couldn’t find time to work on this until we called Ryan in April. Ryan graduated the previous year and started his own business, Oakwood Software Consulting, shortly thereafter. Ryan was thrilled to start working on LunchBunch, and since then, he has been the driving force to get LunchBunch to public release.

Now that super power I was talking about, well, it will be available on the iOS App Store and Google Play Store in two short days.

LunchBunch is more than a glorified group texting platform; it matches you with friends (we call them buddies) who are available and want to get lunch with you. Sometime before lunch, you select which of your buddies you want to get lunch with, and then you “broadcast” to them. Out of those buddies, you will see which ones are also broadcasting to you. Now you have a super power, knowing which of your buddies are available and want to get lunch with you. At this point, you can create an invitation with some of those buddies and maybe a few others who you want to invite in case they’re free.

That is where we are now, and there is a lot more we’re adding to make this a tool that streamlines your lunch-planning process. Ultimately, our goal is to connect people for meaningful conversations and stronger community, and lunch is a great time to do that (and in case you were wondering this whole time, it works for dinner too).

Sincerely,
Matt from The Bunch

About the Blog

Why blog about LunchBunch? For 3 reasons.

1. To tell a story
All startups go through a unique process to get from point A to point B.  We want to let people know about our process, we want people to share in the journey, and ultimately, we want people to understand who we are as individuals, as a team, and as a company.

2. To keep you up to date and in the know
LunchBunch is young, and we are aiming to be something that is useful to you and your friends.  We will keep you updated on our progress and future plans here.

3. To share our knowledge
Some of our posts will be technical and some will be business-related.  We have learned a lot from other blog posts, but we also had to figure out a lot by ourselves, whether it was navigating the waters of a startup, exploring the jungle of Android, or climbing the mountains of iOS.  We want to be able to pass along our experience in these areas and others for you to build on.  We encourage user involvement on this blog, so please leave comments so that everyone can learn from your experiences too!

Sincerely,
The Bunch