Jump to content

Need guidance for computer software programming

I want to make a computer software very similar to onedrive or dropbox. But it doesnt need online servers. What will my requirements be to make a software integrated with my windows file explorer? I also have to make a phone app for which i will use android studio but what to use to make a .exe file. I think i am fairly good at java. What else should i be learning if i take on this project?

Link to comment
Share on other sites

Link to post
Share on other sites

....
i..i.i.... ... ... it is not possible tho... ... ...
Java for Android... C# for Windows.... think you can prove me wrong go RIGHT ahead.

Link to comment
Share on other sites

Link to post
Share on other sites

You want to make dropbox, but without servers? so, you want to make.... a share? I'm a little confused here there is built-in functionality for windows linux and macos for that, however if you have an idea of what you want to do and you're just looking to make an installer, you could use something like WIX to make an msi file. wixtoolset.org would be a good place to look into.

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, Mason Fraser said:

You want to make dropbox, but without servers? so, you want to make.... a share? I'm a little confused here there is built-in functionality for windows linux and macos for that, however if you have an idea of what you want to do and you're just looking to make an installer, you could use something like WIX to make an msi file. wixtoolset.org would be a good place to look into.

yes i mean to create a software for sharing and syncing, which would work like the onedrive in our pc. You can share from your phone's app and it would appear on your pc just for the time when your phone and pc are connected. So what should i learn to make this possible?

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, SafyreLyons-5LT said:

....
i..i.i.... ... ... it is not possible tho... ... ...
Java for Android... C# for Windows.... think you can prove me wrong go RIGHT ahead.

okay so i need to learn c# first? I have very less knowledge on developing so can you shed some light please

 

Link to comment
Share on other sites

Link to post
Share on other sites

On 5/5/2019 at 7:29 AM, RahulDesai1999 said:

okay so i need to learn c# first? I have very less knowledge on developing so can you shed some light please

 

C# is basically the code that 99.99% of all EXE files use (from my knowledge anyways, I am not really a Windows user)

 

(EDIT: I am massively wrong, I am just stupid)

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, SafyreLyons-5LT said:

C# is basically the code that 99.99% of all EXE files use (from my knowledge anyways, I am not really a Windows user)

Are .exe files not all encoded in machinecode? I don't think that has anything to do with C#.

 

@RahulDesai1999 I think you can use any programming language you want for this. I do not know a lot about this kind of stuff but I think you need to find out how to send data from one device in your local network to another. Just choose the programming language you are most comfortable with and google "--here your programming language-- local network communication" or something like that. From experience I know that some languages make stuff like this very easy, like python as an example. Just keep in mind that you will need a separate program on your phone than on your pc. Maybe if you use Java you could just copy your code for the pc application to your android application with android studio. But the communication should be programming language independent (I think).

Link to comment
Share on other sites

Link to post
Share on other sites

16 minutes ago, MrMG said:

Are .exe files not all encoded in machinecode? I don't think that has anything to do with C#.

 

@RahulDesai1999 I think you can use any programming language you want for this. I do not know a lot about this kind of stuff but I think you need to find out how to send data from one device in your local network to another. Just choose the programming language you are most comfortable with and google "--here your programming language-- local network communication" or something like that. From experience I know that some languages make stuff like this very easy, like python as an example. Just keep in mind that you will need a separate program on your phone than on your pc. Maybe if you use Java you could just copy your code for the pc application to your android application with android studio. But the communication should be programming language independent (I think).

The only way I ever made .exe files is with C#... then again I do not code for windows Xd

idk if I should have talked here

Link to comment
Share on other sites

Link to post
Share on other sites

You still need a server. How are you going to store all the contents in your "Dropbox"?

 

This is like trying to make an unicycle but you want to use Two wheels instead of one. Definition does not match. 

 

Edit: if you meant offline servers as in not connected to the internet, you can do it with sockets. 

 

Easiest would be to use python. 

https://www.google.com/amp/s/www.geeksforgeeks.org/socket-programming-python/amp/

You can get it up and running in very little time this way. 

 

You still need a computer to act as a server to store all the contents and retrieve the contents. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, MrMG said:

Maybe if you use Java you could just copy your code for the pc application to your android application with android studio. But the communication should be programming language independent (I think).

Libraries can be the same but rest of the code has to be rewritten sadly. 

You are force to use the Android APIs and frameworks to make an app. This means you have to rewrite your code around that. No static void main. Instead you are to work with Android activities, context, containers/layouts, and all the sweet widgets. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

Well, you say you know Java - it is possible to do it in Java from start to finish. Android app, server - perfect. Not practical on desktop, as it's Java and all, might need to write the client in another language if you want a lightweight client. You won't be able to do it without some sort of server. You can use a peer-to-peer protocol, but you will still need a tracker (without big storage at least), and you still need a server for that.

 

There's more than one way to do it, so it's really impossible to say what exactly you will need. But in any way, it's a networking centered project. You will need to learn how networks and different protocols actually work, depending on what you will be using and how you will design it. HTTP/HTTPS is a given, others may be present. You will need to learn about network security, if you want to do it properly and securely. If you're going to use HTTPS (I suggest you do), you will need to invest into a domain and a certificate (or at least use Lets Encrypt certs, they are free). You will need to learn how to deal with all of that domain/cert stuff. You will need to learn to create user interfaces on multiple platforms, since you will be covering: mobile (android), web (on server, might not need to, depends on what you want to do :) ), desktop. Means differ from platform to platform. Your clients will need to be able to watch their designated folders and files for changes, execute on those changes, you will also need to think about how to deal with file conflicts, and track files overall. Think about not draining your battery on android. Performance takes the last seat I guess, in your case, one teeny tiny server will do, it won't complicate things too much either. You will need a database on there probably (again, depends on what you do), just pick MySQL or smth. So you will need at least basic SQL knowledge.

 

All in all, you're looking at 3 different projects, for 3 places your code will be running on. They will all communicate, so they will need common means to exchange data. Just use JSON over HTTP(S), for everything, except for files, JSON won't work with files properly. Since I assume you'll be doing this on your own, it will take awhile to nail everything. Good luck.

Link to comment
Share on other sites

Link to post
Share on other sites

7 hours ago, DevBlox said:

Well, you say you know Java - it is possible to do it in Java from start to finish. Android app, server - perfect. Not practical on desktop, as it's Java and all, might need to write the client in another language if you want a lightweight client. You won't be able to do it without some sort of server. You can use a peer-to-peer protocol, but you will still need a tracker (without big storage at least), and you still need a server for that.

 

There's more than one way to do it, so it's really impossible to say what exactly you will need. But in any way, it's a networking centered project. You will need to learn how networks and different protocols actually work, depending on what you will be using and how you will design it. HTTP/HTTPS is a given, others may be present. You will need to learn about network security, if you want to do it properly and securely. If you're going to use HTTPS (I suggest you do), you will need to invest into a domain and a certificate (or at least use Lets Encrypt certs, they are free). You will need to learn how to deal with all of that domain/cert stuff. You will need to learn to create user interfaces on multiple platforms, since you will be covering: mobile (android), web (on server, might not need to, depends on what you want to do :) ), desktop. Means differ from platform to platform. Your clients will need to be able to watch their designated folders and files for changes, execute on those changes, you will also need to think about how to deal with file conflicts, and track files overall. Think about not draining your battery on android. Performance takes the last seat I guess, in your case, one teeny tiny server will do, it won't complicate things too much either. You will need a database on there probably (again, depends on what you do), just pick MySQL or smth. So you will need at least basic SQL knowledge.

 

All in all, you're looking at 3 different projects, for 3 places your code will be running on. They will all communicate, so they will need common means to exchange data. Just use JSON over HTTP(S), for everything, except for files, JSON won't work with files properly. Since I assume you'll be doing this on your own, it will take awhile to nail everything. Good luck.

i'll expain what i mean to do. What i want is to share my phone (each file) and my computer (each file) with each other (this app would be for one owner) just like we use onedrive, we will have a system folder in our pc called my phone, which will show files of my phone when they are connected together or both are connected to a wifi. Same for the phone, ill be able to view my files online and will be able to save files offline when pc and phone are connected. Its somewhat what teamviewer does, but its for one owner so you wont have to login again and again. Now i want the file transfer to happen via ftp. So am i clear with what i want? Now my question is, what will i have to learn for this? And what technologies will be used in making of this

Link to comment
Share on other sites

Link to post
Share on other sites

16 hours ago, wasab said:

You still need a server. How are you going to store all the contents in your "Dropbox"?

I am guessing he is going with either a shared network drive or remaking a Git/Svn clone

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, Franck said:

I am guessing he is going with either a shared network drive or remaking a Git/Svn clone

That is called a server. 

 

I don't think op needs to code something out of  scratch. Can't he just use Windows network Sharing features or something like webdav?

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

On 5/5/2019 at 10:54 AM, SafyreLyons-5LT said:

C# is basically the code that 99.99% of all EXE files use (from my knowledge anyways, I am not really a Windows user)

C# is a very commonly used language, but definitely not that common. While .exe files are executables and C# programs can be compiled into .exe files, .exe files do not have to be compiled from C# code. They can be compiled from other languages (such as C++) or even a mix of languages.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Kavawuvi said:

C# is a very commonly used language, but definitely not that common. While .exe files are executables and C# programs can be compiled into .exe files, .exe files do not have to be compiled from C# code. They can be compiled from other languages (such as C++) or even a mix of languages.

well thanks for helping me know that. I am just stupid lol idk much about windows programming most of my stuff has been built on linux.

Link to comment
Share on other sites

Link to post
Share on other sites

I think you need to plan your software a bit more. Writing the code is the easiest part once you know what you want to do, how it will work & what everything will do when you want it to do it. 

1 hour ago, SafyreLyons-5LT said:

well thanks for helping me know that. I am just stupid lol idk much about windows programming most of my stuff has been built on linux.

It can be compiled to machine code. It can also be compiled to an intermediate language as it was intended to compete with java. 

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, fpo said:

I think you need to plan your software a bit more. Writing the code is the easiest part once you know what you want to do, how it will work & what everything will do when you want it to do it. 

It can be compiled to machine code. It can also be compiled to an intermediate language as it was intended to compete with java. 

I am just learning how to, when I turn 18 imma start thinking of real products. (i am 16 lol so i do not care about making top tier products)

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, SafyreLyons-5LT said:

I am just learning how to, when I turn 18 imma start thinking of real products. (i am 16 lol so i do not care about making top tier products)

The top part was meant for OP. I was talking to you & explaining what C# was after the quote. 

Sorry for the confusion. 

Link to comment
Share on other sites

Link to post
Share on other sites

basically i make dumb things and do really dumb things and experiment, then i mix the results into the spawn of satan :)

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, fpo said:

The top part was meant for OP. I was talking to you & explaining what C# was after the quote. 

Sorry for the confusion. 

its fine it is midnight where i code more often because i come up with dumb ideas for code. of course with that i think you will understand why

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, SafyreLyons-5LT said:

well thanks for helping me know that. I am just stupid lol idk much about windows programming most of my stuff has been built on linux.

I believe a software shouldn't be tie to any operating system. This is why I tend to code in java and python. They are write once and run everywhere without much hassle. Much of the os dependent functionality are encapsulated. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

On 5/5/2019 at 11:51 AM, SafyreLyons-5LT said:

Java for Android... C# for Windows

You can use C# for Android and Java for Windows if you feel like you should.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

On 5/7/2019 at 9:40 AM, wasab said:

I believe a software shouldn't be tie to any operating system. This is why I tend to code in java and python.

That ties your software to operating systems which have your version of Python and Java. No, there are more operating systems without both Python and Java than you'd obviously think.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Dat Guy said:

That ties your software to operating systems which have your version of Python and Java. No, there are more operating systems without both Python and Java than you'd obviously think.

Which is good enough for me. Crossolatform issues are caused more by code incompatibility than the availability of an interpreter/compiler. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×