I work at Snapchat so I might be qualified to answer this.
To better understand how long it will take you to build an app like Snapchat, you need to know what skills you will need.
- Basic programming. Firstly, you will need to have a good grasp of programming. Pick any language you like and go over the basics. This will take you at least a couple of months.
- Software Design. Writing functional software is easy while writing functional AND maintainable software is difficult. Knowing the common design patterns is a must. This will take you another couple of months.
- Mobile Development. Since you plan to build an app, you need to know the core of mobile development. This includes application life cycle, how different components behave and so on. This can take you anywhere from 6 months up to a year. Don’t forget, you will need to pick up the right programming language (Java for Android development and Objective-C/Swift for iOS).
- Software Tools. There are a lot of tools and applications you will need along the way. Version Control (Git) to manage the changes, IDE for the development, build tools, testing tools, debugging tools and so on. That is at least another month.
- Multithreading. An important area that is often overlooked by beginners. An app like Snapchat is required to perform several tasks simultaneously (fetch updates from the server, update UI, and so on). To get a good grasp of multithreading, you will need to spend some time. At least a couple of months.
- Networking. Sending and receiving messages is in the core of Snapchat. If you want to build a communication app, you will need to cover the basics of communication protocols and understand how one user can send and receive messages from another user. From a couple of months and up to a year.
- Server-side programming. As a user, all you get to directly interact with is the app on your phone, which on its own is only a small part of the whole ecosystem, There are hundreds of servers behind the scenes that constantly communicate with the client (the app) to ensure your content is up to date. It is important for you to have a knowledge of what it takes to build a responsive server. Another half a year to a year.
- Scaling. It is not an easy task to ensure that 150 million daily users can send and receive messages without failures. Each server receives hundreds of thousands of requests every second and it is important to ensure that they are all handled successfully. To do so, one needs to design a good architecture. This is the most sophisticated skill and will take you years to learn.
Now if we assume that you have at least a moderate level of understanding of everything I have mentioned above, it is safe to guess that it will take you at least 3–6 months of full-time work to actually code an app with the basic functionality of Snapchat.
P.S. There are a lot of advanced areas that I did not mention:
- Snapchat uses encryption for their Snaps.
- Machine learning is used heavily throughout the app.
- A great deal of work has been put to secure the servers.
- Some camera features involve AR.
- and so on..