Build a real world mobile app business (Starts up)

Discussion in 'The Business Forum' started by aeric, Sep 28, 2017.

  1. aeric

    aeric Active Member Licensed User

    Hi all! I am quitting my current job and join a new starts up. I am being offer as the head of IT department. I am going to hire 2 developers to help me for the development work. I hope you guys can give some advice.

    The company is founded by another 2 directors who have little knowledge in IT. The company is going to provide a service where business owners (or service providers) can advertise their business and end users will use mobile apps (Android / iOS) to find the shop or services.

    Before I join the company, the founders already approach a software company to create the system. The software company is using Wordpress to build the backend and phonegap for the mobile apps. My work is to continue the development and to support the entire system.

    1. Is Wordpress site suitable for the business. Is it worth to redevelop the backend from scratch using PHP or other technology stack?

    2. What server should I use? Private VPN or go for Cloud server?

    3. Should I develop native apps instead of hybrid?

    4. What I need to do to protect our customer data, prevent security attacks and ensure the app performance.

    5. Should I hire a back-end and a front-end developer or full stack developer?

    I read about so many new technologies developers are now using to build application such as Python, Django, Ruby on Rails, Laravel, React, Redux, Node JS, Java, xamarin, Ionic, Angular, Codova, Phonegap and the list go on.

    I am wondering what kind of technologies use by outside business? How they run their business?

    Should I follow the trend so our app can compete with other competitors?

    Hope someone can shed some light. Thanks.
     
  2. Sandman

    Sandman Active Member Licensed User

    I recommend you post the whole text at Hacker News. It's a quality forum where broad topics like this are quite commonly discussed, especially in the scope of start-ups. If your question gets any traction, you can expect lots of real-world quality feedback and probably some very tough follow-up questions that are good for you.

    Prefix your post title with "Ask HN:" so it shows up in the Ask section of the site.

    https://news.ycombinator.com/
     
    Javier Donayre and aeric like this.
  3. aeric

    aeric Active Member Licensed User

    Thanks for the suggestion. I will give it a try.
     
  4. nwhitfield

    nwhitfield Active Member Licensed User

    Many people do use WordPress for big commercial sites, because it's a solid platform - but partly because of its popularity, is it also something of a magnet for attackers. It is vitally important to make sure you keep it up to date, and use something like then WordFence plugin to alert you to anything unexpected happening - it can lock out IP addresses, for example, or particular users, based on failed login attempts.

    If you do develop from scratch, then what you use to do that is up to you - I'd use PHP, because that's what I'm familiar with, but others have their own preferences, and even for particular frameworks within those languages. Most important, whatever you use - code defensively, treat every bit of data received from users as potentially dangerous; check it's the right type, or an allowed value, etc, before it goes anywhere near a database.

    In terms of protecting customer data, if you're going to be dealing with customers in the EU, read up on the GDPR (which in any event, is probably a good set of guidelines wherever you are, if you actually care about customers) - http://www.eugdpr.org/

    Back end, front end, full stack - up to you, but I tend to the view that the full range of technologies involved these days is so broad that, unless it's a pretty small operation, you really do need specalists for each bit, rather than one person expected to do the whole thing. The skills to make something look decent, and a web site responsive, are not the same skills as those to design an SQL database structure, or to code in PHP, B4X, or to optimise Apache to handle the number of clients, or keep abreast of which libraries you need to update on your server to ensure that SSL connections really are secure.

    One other thing I'd say - before you start coding back end or front end, design your database first. Think about what information has to be stored, and how it will be accessed, and how you might perhaps want to access it later, or what sort of updates might be needed. Work out what tables you need, and how they relate to one another, and consider the impact on the design of the queries you'll be running. It's tempting to just throw new tables into a database as you go along, and decide you want a new feature. The danger of that, though, is that in a few years time, you realise you want to do something else, and suddenly ad-hoc way your data has been organised means mind-bending SQL queries that gobble up processing time, and and developers ending up jumping through hoops to get the information they need, or keeping information up to date is more complex than it would have been if you'd designed things differently.
     
    Javier Donayre, aeric, udg and 2 others like this.
  5. sorex

    sorex Expert Licensed User

    >1. Is Wordpress site suitable for the business. Is it worth to redevelop the backend from scratch using PHP or other technology stack?

    only had a "look" at wordpress once and it's way more complex than what I make for customers so I always fall back to my own.
    If what you want to do doesn't exist as plug-in's you'll have to write it yourself so you better do it all from the start or you'll get stuck quick.

    >2. What server should I use? Private VPN or go for Cloud server?

    start with shared which is more than enough for regular traffic sites.
    you can still move on to a better package or full VPS if it requires more resources.

    >3. Should I develop native apps instead of hybrid?

    native

    >5. Should I hire a back-end and a front-end developer or full stack developer?

    most back-end developers do front-end aswell.

    >Should I follow the trend so our app can compete with other competitors?

    the result what the end user is seeing is what counts. it doesn't matter with what it's made.
     
    aeric likes this.
  6. udg

    udg Expert Licensed User

    1. Wordpress yes/no
    I totally agree with @nwhitfield . WP could be ok as long as you keep it costantly updated and you're aware of the risks involved in using a tool that many would-be crackers will target. Same for any other widespread CMS (Drupal, Joomla..). You could use it for a quick prototype, to see how others solved problems like the ones you're going to study in your business-to-customer project and it has the advantage that you will easily find programmers for it.
    Personally, I would go with a in-house solution.

    2. VPS/Shared cloud
    I would go for the VPS since it nowadays doesn't cost you that much (even under $10/month). But you have to be sure you can count on an experienced IT manager able to armor your server.

    3. Native/Hybrid
    Considering you're posing this question on a Forum where presumably participants already choose the native path, I'll be surprised to read a significant percentage in favor of any hybrid solution. Anyway, the company I work for recently re-tooled a B4A app in PhoneGap to be able to publish at the same time on iOS and Android marketplaces, avoiding the learning curve of B4i . To my surprise, what was a 1MB apk became a 3MB one, not a tens of MB monster!
    As an advice, I believe you could choose your solution based on knowledge and experience of your programmers. Your boss is asking you for a product; he doesn't care what tool you used to develop it. Just be sure to be able to maintain it once it's out.

    5. BE/FE/WS
    It mostly depend on the knowledge and ability of your staff. Another point worth of consideration is your budget. In my experience a few specialists managed by a supervisor is the best approach if you can afford it. Even for small-grade projects we use to form a team with a FE, a BE, an Oracle-certified DB manager and a supervisor that coordinates them all.

    I am with @sorex here. Think of your project as of a product. It has is own life cycle. It needs to stay on budget and on time when developing but needs a plan for maintenance too. And it needs someone able to sell it, to care about customer satisfaction, to look at the competition. SW is an industry today.

    udg
     
    aeric likes this.
  7. Cableguy

    Cableguy Expert Licensed User

    This thread is very interesting to me, as its base is almost a carbon copy of the app I'm on at the moment.
    I decided to create everything from ground up, and so, since I will be using ABMaterial as a Backend/webapp, I bought a very low-end vps at about 6€/month. This helps me explore a lot of the things I will need to deal with, and create "solutions" to the upcoming foreseeable problems. As a Plus, and since I am creating my solution from ground, I am aware of all the limitations I can encounter, and try to think ahead.
    As a front-end, I will stick with B4x, and use the rest of the suite to create them (android/iOS).
    I prefer to hit the walls of a house I built, and so, know very well (B4x) than to hit walls in someone else's house (WordPress/Joomla/etc) and end up discovering dead-end without solution!
     
    Harris and aeric like this.
  8. Harris

    Harris Well-Known Member Licensed User

    I agree with @Cableguy.

    I too had to develop everything from the ground up. I explored everything (while being somewhat fluent in B4X) and discovered all the other dev platforms could be accomplished in B4X - without the brutal learning curve of everything else. If I could only get back the time I wasted during this discovery process and have had someone tell me - "Use B4X - you won't be disappointed!"

    With ABMaterial - forget the rest. The short time it took me to grasp ABM, which at first glance may seem daunting, is time WELL SPENT. I don't see anyone here who will disagree with that statement. It is a progression in web technology that actually works - avoiding most of the previos base that was required (js, html, css, etc). To tell the truth - I don't know how the hell it works... it just does. I could not dev web sites without it (DB, tables included) - I have spent years (and bucks) trying. Testing and debugging is a pleasure than a chore.

    BTW, I am available for hire. I love a challenge.
     
    Erel, Cableguy and alwaysbusy like this.
Loading...