I was considering going freelance myself and these are questions I also considered. I hope someone with experience replies and we can turn this into a very useful post.
Yes. When the user opens the app I will get their current location and add it to a column in the database 'currentLocation' Then I will query the database like so: select * from users where userOnlineStatus = 'online' and currentLocation = ""; <- That is what I would want to do. Its just calculating the distance so that not all random users are showing up.
I'm not too sure but flappy bird the game only got successful overnight because someone hated how crap it was and posted it onto Buzzfeed. Then it went viral.