Skip to content

A customizable, educational and restricted social media platform.

Notifications You must be signed in to change notification settings

Israel001/iSocial

Repository files navigation

iSocial

A customizable, educational and restricted social media platform.

Background

The idea behind this project is to build a customizable, educational and restricted social media platform specifically for mobile phones (Android and iOS).

After getting this idea, I started looking into programming languages for mobile. During my research, I discovered Java for Android, Kotlin, Objective-C, and Swift.

Because I'm more familiar with Java, I took an android course on Udemy that teaches Java for Android and Kotlin from scratch. I completed the course but unfortunately, the apps built in the course didn't really impress me so I was disappointed. Anyway, I started looking into more into android and while researching, i came across hybrid mobile app development (i.e. building an app that works for multiple platforms with one codebase (also known as project)).

Initially, my plan is to create two different projects, one for android (written in Java) and another one for iOs (written in Swift), but discovering hybrid mobile app development changed everything. I started looking into technologies that are related to hybrid mobile app development and I came across PhoneGap, Flutter, React Native, and Ionic. My first instinct was to use PhoneGap (since it's the easiest) but that didn't really turn out well; I was able to make apps that were running via PhoneGap Developer App Console, but when it comes to converting the files into an APK file, I couldn't get it to work, I got tired and gave up.

It came down to Flutter vs React Native (since Ionic is not as popular as these two, I didn't consider it). The only thing that kept drawing me to React Native is JavaScript. I felt like it's gonna be easier than learning a whole new language (Dart). But still, I keep seeing people saying a lot of nice things about Flutter, then I became curios, and I decided to learn it with no absolute certainty of if I'm going to use it or not.

I took a flutter course on Udemy, seeing the apps made in the course compared the ones made in the Android course, there is a distinct difference. With flutter, the app is nice-looking, easy and also possessing many nice features. I was so happy, then I started looking for a course that teaches how to make social media and I came across a nice one and from there, the journey of building this app started and it has been challenging and fun at the same time up to this point.

ScreenShots


Important Notes For Running The Project

This app is built with Flutter v1.5.4-hotfix-2

This app has only been tested on Android platform only. Due to me not having a macOS and an iOS, I haven't been able to test it on iOS platform yet, when I do, I will try my best to tackle any anomalities discovered. As for now, this app is currently working on Android platforms (not perfect tho, still work-in-progress).

Soon, I will make a blog that will contain everything you need to do with third-party services that have been used in the app such as Facebook Developer API, Firebase etc. For now, you can let me know if you have any issues running the project, and I will attend to you.

What I am Currently Working On

  • Preserving App State after it has been terminated
  • Incorporating Redux
  • Alternative Authentication using Email and Password
  • Full-Text Searching
  • In-App Groups

What I Plan To Work On In The Future

  • Detection and restriction of inappropriate photos
  • In-App Quiz Games
  • Random Daily Quotes Generator
  • App Timer
  • Dynamic use of in-app languages
  • Come up with a better color scheme and design the app in a way that it is effective for dark mode integration
  • Integrate dark mode

What The App Can Currently Allow Users To Do

  • Authentication via Google Only
  • Follow & Unfollow users
  • Post links, videos, pictures and texts
  • Delete and edit own posts
  • Like posts
  • Share posts
  • Comment on posts
  • Receive Notifications
  • Edit Personal Information

Notes

I am not a professional developer, so this project might have a bad structure, bad coding practices etc. Please if you see any flaw, please let me know so I can learn how to work on it. Thanks in advance.

Also, the features listed above has the tendency to change at anytime, depending on my experience while attempting to implement them.

Contributions

If you want to contribute to the project, contact me. Although, I am not really sure about this yet, since I am not really good with using GitHub features like (branching, merging etc.) so I don't know how to use GitHub with a group of people and I don't want to end up messing the whole project.

If you know how to use GitHub very well and you want to contribute me, please contact me. Thanks.

Conclusion

So far, I have gained so much knowledge while building this app and I intend to keep learning more new stuffs. Also, I've enjoyed working with Flutter even though it's quite challenging just as working with any other technology is, and I hope that you also gain or learn something from this app.

Please if you have any feedback, or suggestion or anything you wanna say regarding this app, please do in the Issues section or contact me via israelobanijesu2@gmail.com

Don't forget to star the repo if you like the project 😉

About

A customizable, educational and restricted social media platform.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages