166
tahnik
8y

Cross platform desktop application for devRant

Project Type
Open source idea
Summary

Cross platform desktop application for devRant

Description
A cross platform desktop application that can leverage underlying OS features e.g. notification, shell extension etc. We shall be able to make use of higher resolution to make navigation between rants, profile, weekly rants easier. There's already a great UWP unofficial devRant app created by JS96. We can take idea from that.
Tech Stack
Electron, ReactJS
Current Team Size
7
URL
Comments
  • 9
    @fariz I don't mind JS, I think we will have better access to OS features via C++ or Java. Let's see if someone can share their insights into this.
  • 17
    @tahnik i already started to make a devRant desktop app. Contact me if you want to colab. It's in electron fyi.
  • 6
    @dikiaap Yeah, also node is not exactly built for multi threaded operation. But I respect the choice @Dacexi has made.
  • 7
    @tahnik Just out of curiosity; are OS features necessary for this kind of an app?

    Don't get me wrong, I love c++, but it wouldn't be my first pick for something like this :p
  • 3
    @typodeaf maybe not necessary, but would be cool to have it. The website for now lacks features like desktop notification. We can have shell extension that gives you notification alerts (like how many notification we have)

    What would pick instead of C++ or Java? Unfortunately there's isn't that many options for cross platform GUI apps. But we can of course discuss about it, in case you have a better idea.
  • 3
    I'm a bit new to Java and I'd love to help, but I'm kinda busy. Maybe in a week? Also, any frameworks? I have to say Jsoup's not bad in my opinion and I've already built a devRant scraper with it. (Also, I scraped too many rants… which is why I have to do this on cellular)
  • 2
    How about a chrome app
  • 3
    I am fairly good at writing JavaFX apps, I mostly use some MVVM approach. I did write some framework for it with modules (taskbar, notification, preloader, updater etc) back when it came out. I wanted to wait for Java 9 to make them true modules and refractor them completely using Java 8 features.
  • 3
    I'm actually planning to create a WPF/MVVM one over the next few days. Forking this https://github.com/WichardRiezebos/...
  • 1
    @SirWindfield How does Java/FX compare to WPF/Metro? I'm still not sure I want to try making a Win10 Universal App...
  • 3
    Aren't the devRant mobile apps already built with js/electron/cordova/web wrapper. From how the apps function and the web site looks, it feels like they are?
  • 1
    @allanx2000 I like it more than WPF, Java was my first language that I learned so I didn't even considered to use another UI framework at the time :) It is super easy to pick up. And separating styling, behavior and ui code makes it super easy to test. If you combine it with MVVM, unit tests are easy to write too :)
  • 1
    @SirWindfield Hm... And it has a UI Designer?

    I dunno, my experience with Swing and Android layouts which I think is sort of a hybrid... Feels WPF XAML is way better
  • 1
    Looks like the app is web based?
  • 1
    @allanx2000 ye, scene builder. Easy to use and still powerful. I never used wpf except for small projects but it looks the same to me tbh
  • 4
    @calmyourtities I don't think we'll need any framework. Java has plenty of built in libraries. We can use JavaFX for the GUI

    @suhail I think there's already an existing one. Also, if it's in the browser why not just go to the website anyway

    @SirWindfield we can pretty much use the full MVC pattern with JavaFX

    @allanx2000 there's a wpf app already by @JS96 His app is solid so I would want to avoid wpf. There's one built with electron but I think that is a Web wrapper. Not from the scratch.

    JavaFX uses fxml and is very similar to XAML
  • 7
    Interesting project. :)
    I recommend C++ (QT) if you want to make it cross platform.

    P.S.
    @tahnik as you said, my app is native UWP (XAML + VB.NET). :P
  • 2
    @allanx2000 it is, appcelerator.
  • 1
    @JS96 cool, any chance I could get the source code. Or just how should I learn/think about UWP?
  • 3
    @Dacexi do you by any chance have the source code available somewhere? I am currently iOS developer but has been using js (react, vue) more and more in other projects, front end. And I was gonna try build something yesterday with electron. I also found a electron+vue template. Anyhow it would be nice to see how you structure and build an desktop app with electron. 👌
  • 2
    @troligtvis it's on my github found on my profile. The code is a bit sloppy as it was my learning project for Vue
  • 2
    @troligtvis if you're gonna use please don't rip the code and call it your own, contribute to the project on github. Thank You :)
  • 3
    @Dacexi haha dude come on. I was more interested in how you structured it all. The electron stuff I mean.

    I already have written my own api wrapper (in swift tho) but easy to translate into js.

    So don't worry I am not someone who take other work and call it my own.
  • 3
    Pretty cool idea, if you're gonna do it in java I have a devrant api wrapper for that. It's on my github, you might get some basics from that (or even use it :D it does need some updates but I've got some spare time coming up)
  • 3
    @LucaScorpion yeah I've seen that. If everyone agrees to use Java then I will try to help you as well.
  • 2
    @tahnik that'd be great! Let me know :)
  • 2
    @Dacexi I'd been toying with the idea of building a devRant app in electron as a way of learning it.
  • 2
    @LucaScorpion your devRant API looks great! The only thing I'd say is that on
    Rant[] weekly = DevRant.weekly();
    you should be able to add the week between the parathese
  • 2
    @calmyourtities Thanks! And good idea, but I'm not sure if the api supports that in any way. I'll have a look.
  • 2
    hm... progress is slow... spent all afternoon, only got basic feed working....
  • 1
    @allanx2000
  • 1
    Any linux ui framework?
  • 3
    Electron.js will be really useful for such projects
  • 1
    @vortexman100 If we're going with Java I'd just use javafx, works pretty great on all platforms.
  • 2
    @dikiaap @calmyourtities @SirWindfield @LucaScorpion So looks like Java has got most of the votes.

    Are you guys interested to give JavaFX a try?
  • 2
    @tahnik already wrote a couple of private projects in JavaFX :) I am fairly decent with it
  • 1
    I used a lot of design patterns and personally I think MVVM fits it the best. Unit testing is much easier with it and it decouples a huge amount of code.
  • 1
  • 1
    @SirWindfield isn't View Model essentially the controller? Can you please explain? :)
  • 3
    Ye, the model stays the same, The View is actually the controller and the ViewModel contains the logic of the view. So basically the view binds to the properties of the view model, making the view model responsive for the processing of user actions. The View is just used as the UI. That makes it a powerful pattern, because you can independently test Model and ViewModel. Both of those have no dependencies to any UI framework or toolkit.
  • 1
    @tahnik I'd love to help! I've never used JavaFX before, just swing, but I'll try to learn quickly. Thanks!
  • 4
    @calmyourtities it is a huge enhancement compared to swing. Personally I do not see any differences to other cross platform languages. It doesn't matter which language you point at, almost all of them need some extra runtime, even QT. Now that Java 9 is coming, the runtime will shrink immensely because developers can exclude things that they do not need (like java awt). For example, if you use FX only there is no real dependency to AWT and Swing, meaning you can remove already 30Mb worth of space. Embedding the resulting runtime with your program makes it easier to update it and maintain it. I hope that this pushes Java a bit more, because even if it is an old language, it is evolving into the right direction. And the old nasty "do not install Java onto your system because you can get viruses" is completely bullshit nowadays. Applets and Web start are gone, which were a big chunk of those bugs. There might be exploits, but those get fixed relatively fast. And ye, I love the language :)
  • 3
    @SirWindfield I love it too. It's always been my favorite even before I got to know it. I think it's a bit underrated. It can create apps, it's cross platform, its verbose, if you really want you could even compile it natively, and, my favorite, it's a standalone because everything is packed in the jar. I can't wait to learn more! (I'm on my first Android app right now)
  • 2
    Haha Android is super fun! Ye same here, by far my favorite language. But I didn't know that you can compile it to native.... :)
  • 2
    @SirWindfield I just tried Excelsior JET for the first time today. I liked it, but I do with GCJ was continued, I like have a feeling it would be better…
  • 2
    @SirWindfield ok so the we create the GUI using scene builder and each buttons/control points to a method in ViewModel. The viewmodel calls model for the actual logic to be done.

    Is that correct?
  • 2
    Almost, let's say we have a RootView class, this will be the actual controller. It binds its properties to the ViewModel properties. If a user presses a button, JavaFX will call a method within the View class. That class than calls a method within the ViewModel. It is like a proxy. Check out mvvmfx, a framework for javafx. There is an example app that illustrates it quite well :)
  • 2
    @tahnik For me a Model like a data record or DTO. Any changes to it won't be automatically reflected in a View. If a View model property is updated though and the View binds to it, the VM will notify the View that it changed and the View will update.
  • 1
    @allanx2000 yep, that's the idea.
  • 2
    @SirWindfield ok I now fully understand the mvvm pattern. I have no problem using it but if any beginner wants to contribute, it might be difficult for them to understand. What do you think?

    MVC is a much simpler concept for everyone to understand if they want to help.
  • 1
    @tahnik sure, we can do mvc too. I mean if we really need, we can still migrate later on. Dunno if I mentioned it but I worked for some time on a mvvm framework for javafx with native feature support (like taskbar, notifications and co) cross platform. I am waiting for Java 9 to arrive and to port it over. Providing each api as a module is a lot simpler and makes updates more easily :)
  • 1
    @SirWindfield @fariz Ok so we will start with MVC pattern and switch to mvvm later for better testing. I will setup a repo right away and share the link. I will ask for all of yours github username soon.
  • 3
    @tahnik my name is the same :)
  • 1
    @SirWindfield @tahnik mine too. But wait if we use JavaFX, we can do MVC instead of MVVM? No use of bindings you mean? I've actually never used MVC for a desktop app, only websites.
  • 1
    @allanx2000 I don't like model interacting with the view at all. In JavaFX, FXML is considered the view. View talks with the Controller and controller asks model for the logic. Then the controller gets back to the view and updates it. In pure MVC model updates the view.
  • 2
    @dikiaap @calmyourtities @SirWindfield @LucaScorpion @allanx2000 Hey guys, can you give me your email address? I am opening up a slack team.
  • 2
    @tahnik Of course: luca@scorpiac.com
  • 2
    allan.xiao at gmail.com

    should we be posting our emails here though?
  • 2
    Dunno :) still, spam mail, doesn't really matter to me :)
    svenforgithub at gmail.com

    Invite link might be smarter, so others can join too if they want to and keep track of the progress.
  • 2
    @allanx2000 Eh I don't care too much, it's visible on my website too so posting it here doesn't really matter then.
  • 1
    @SirWindfield @LucaScorpion @allanx2000 I added you guys.

    I didn't want to share the link as I don't want everyone to join. Just the collaborators :)
  • 1
    @suhail the days of chrome apps are over
  • 1
    Despite not being a massive fan I'd say Java just because of the support and the huge community. I'd be happy to help because it's a good idea and I like a challenge xD.
  • 1
    @RhysOC you do not like java? Burn with 🔥
  • 1
    If you decide to use JavaFX give me a shout. ;) if it is designed well enough, the desktop app could be very small, portable and universal.
  • 1
    @JavaRules @RhysOC If you guys are interested please give me your email so that I can add you in Slack :)
  • 1
    @tahnik why not just invite them on github? You can see their IDs on their profile
  • 1
    I'd still love to help, but I'm slammed with homework. When do you plan to start?
  • 3
    @calmyourtities we started already. I will soon post about it.
  • 1
    @tahnik I want to collaborate :) !!!
  • 1
    @danielmcasv awesome, could you please give me your email address so that I can add you in the slack team?
  • 1
    @tahnik imdanielcv@gmail.com
  • 2
    @tahnik I checked it out, I'd like to contribute, email: pichardo.software@gmail.com
  • 2
    @jpichardo @danielmcasv I invited you guys to slack.
  • 2
    Use Electron! Just look at VSCode. Supports all the major operating systems and works very well indeed!
  • 3
    @drRoss if you're interested in Electron, i have a collab coming up quite soon :)
  • 2
    @Dacexi Aha, I'm a fan of Electron, but don't know any JavaScript etc.
  • 1
    @drRoss man I've had enough of Javascript, everything in my web stack is JS lol.
  • 1
    @Dacexi Isn't your project ongoing? How do you plan to collab then?
  • 1
    @tahnik Collabs are also for existing projects right?
  • 1
    @LucaScorpion I used wrong wordings. I mean he has been developing it for a while (even after collabs was introduced). I am wondering at what point he plans to "collab" it.

    "collab it".

    get it?
  • 1
    @tahnik which project you thinking about? I always have multiple or else i get bored with one of them. I get bored with one. Work 3 days on an other then i have motivation to work on first.

    Currently i have 3 projects:

    Unnamed: Devrant Desktop
    Droppl: Torrent client
    Kudoe: A text editor built for coding
  • 1
    @Dacexi devRant desktop
  • 2
    @tahnik i think I'm gonna have to redo my devrant client as it was my learning project for vue. Everything​ is a little bit spaghetti rn.
  • 2
    @Dacexi I thought you were using Electron? Can you use vue inside electron?
  • 1
    @tahnik scince it's basically just a browser window. Yes.
  • 1
    @tahnik you can use every ui framework out there. Electron is just the V8 engine and some native bindings like notifications and tray icon support packed together
  • 2
    @SirWindfield @Dacexi Oh I get it now. Thanks guys
  • 0
    @fariz no it's ongoing with JavaFX
  • 1
    How about electron by GitHub?
  • 0
    @tahnik We can also use C# for the Windows port.
  • 1
    @Anu-cool-007 already done by JS90 for UWP and I'm actually working on one for myself in WPF.
  • 1
    Electron is a perfect fit, it worked great for Slack and Atom and many others. Actually it can be a pleasure to develop and support if developed with react and redux.
  • 2
    @twist900 I'm currently using electron to build a torrent client. About 1.5 - 2x faster than BitTorrent
  • 1
    @Dacexi open source?
  • 0
    @Dacexi would love to see the code base. Currently trying out electron and reacr ;S
  • 1
    @SirWindfield code not pretty yet and 2/3ds are compleatly shit. Only look ay main.html and it's scripts. http://droppl.me/
  • 1
    @Dacexi gonna create some PR :D found some errors :D
  • 1
  • 2
    @SirWindfield also please ignore that I'm using a crack for a program to test👍
  • 1
    Hey @SirWindfield would you like to join a slack and we could talk a bit more? If so gimme ur mail
  • 1
    @Dacexi
    Set up the PR, let me know if you have any complaints ;D
  • 1
    @SirWindfield forgive me but kind of new to stuff like this. PR?
  • 3
    @Dacexi pull request.
  • 1
    Check out Qt. Might be mildly better than JavaFX
  • 2
    @Lilithium started focusing on http://droppl.me/ but sure, now that i am mostly done with droppl i could pick up development again :)
  • 1
    @tahnik node is not for multi thread? Where did you learn that?
    Uber, Netflix both are using node, and they are also the reason why NPM exists fyi.
    Any way, you can integrate other languages in node services, if it makes sense for more specific things.
  • 2
    @Canilho actually, we are indeed switching to electron. The transition is happening as we speak, I will let you guys know when it had been competed
  • 3
    @tahnik if you're switching to electron, can i join 🙋
  • 1
    @Dacexi awesome and of course! The only impediment would be that I am planning to use react. I thought you were using vue for your project? Unless you know react already you might need to go through a bit of learning curve. But it should be quite similar :)
  • 1
    @tahnik i use react native. Never tried react
  • 1
    @Dacexi don't worry then, you'll be fine :) I am assuming you know about flux architecture?
  • 2
    @tahnik not really. I'm a really fast learner though. I learnt react native in a week.
  • 1
    Love the idea :)
    I wanna learn JavaFX a bit so I'm gonna watch this closely :3
    Good luck!
    Shame I probably can't be much of help 😞
  • 4
    @fariz @Dacexi @troligtvis @ghost1227 @shinoys @drRoss @gratefulDev @twist900 @Canilho guys, have a look at this: https://www.devrant.io/rants/486647.

    If you are still interested, clone the repo and jump in!
  • 1
  • 1
  • 1
    I also want to collaborate :) you can invite me on github. My name is xMarkusSpringerx
  • 1
    @clay can you email me your email at tahnik at live.co.uk so that I can add you in slack?
  • 1
    @tahnik done :)
  • 1
    What about electron?
  • 3
    @Suiyans we are using electron right now. Check out the repo
  • 2
    @tahnik ,wow. I really want to learn about electron.
  • 2
    Why people in 2017 aren't using electron? Don't you see how well slack is working? And atom? This is the perfect stack with Vue.js or polymer
  • 1
    @MacTheZazou that's why we're using it to build this :)
  • 2
    @MacTheZazou electron is not the goto solution in 2017... Just saying. And fuck vue :p React 🎉
  • 1
    @SirWindfield yeah I wanted to edit my comment but it was to late. For this kind of project, electron is perfect. But ofc it's not always the case. Btw, react < polymer. Fuck js framework. ,,,#UseThePlateform, better performance and stability!
  • 1
    @Dacexi the GitHub say Javafx, do you have another repo?
  • 1
  • 1
    no js please enough slow freezing desktop applications.
  • 2
    @Tychus we have had great progress in optimizing. It runs perfect 60fps and as smooth as my 2000$ on my 150$ laptop
  • 2
    @Tychus and @tahnik has tested on lower specs too! So don't worry 😁
  • 2
    @Tychus every js app that I use daily doesn't freeze. Jesus, those "no Java pls" bullshittery makes me sick as fk.
  • 1
    @SirWindfield you might be the only one then. give atom a try you'll see how shitty those apps can be.
  • 1
    @Tychus atom is slow because it loads all plugins at start up. Run vscode. It rund better. Slack is fast too. Even my bare bones music player runs smoothly. It's just your opinion that makes them run badly.

    At leat none of the persons working on this projects had any issues with js apps whatsoever.
  • 3
    @Tychus he uses vs code. Made in electron. Slack. Made in Electron. Both work fantastically.
  • 1
    Atom work super well on my computer with a Intel M3 CPU... I just don't use hundreds of plugins..
  • 1
    maybe it doesn't now or things got better but back when i tried it it sucked ass wasn't using any plugins.
  • 1
    Can I join? I worked mainly in Java with techno functional skills. I would love to do some collaboration work. And willing to learn JS as well.

    My github handle is yendenikhil
  • 2
    @yendenikhil Hey there! Send me your email at tahnik{at}live.co.uk and I will add you to our slack team. For now, you can observe what we do and if you are interested, you can fork and pull. Eventually, when you have a clear idea of our project, I will add you to the repo :)
  • 1
    Sent email.
  • 1
    I'd be interested in helping!
  • 2
    @Wizardsambolton Awesome! You can fork our repo and start contributing. The best way to get updates and help is via our slack channel. Let me know if you're interested and I will invite you :)
  • 2
    I can't believe nobody mentioned wpf for windows ... please don't use javascript
  • 1
    @iNCEPTiON "cross platform"
  • 3
    @iNCEPTiON I see no point in not using it.
  • 2
    @nik123 umm sorry?
  • 1
    @nik123 @Dacexi will help you with this tomorrow :)
  • 1
    I'm a big fan of react, I've been using NW.js instead of electron but I'd love to help out on the react side of things
  • 1
    @MaxMarchuk Feel free to jump in! Do you want me to add you in slack?
  • 1
    @nik123 make an issue over at our repo and I'll help you out :)
  • 4
    This is a comment sent from the devRantron client to test if comments are working :)
  • 2
  • 2
    Guys, if you have some time, please help us with some testing. Here is the relevant post: https://www.devrant.io/rants/620608
  • 1
    May I join too?
  • 1
    @valium123 sure, do you want me to add you to our slack group?
  • 2
    @tahnik yes sure email is freelance.work9277@gmail.com
  • 2
    Hi, can I join? I didn't go through all comments, but I can code in Java. Not much experienced in react though. Let me know if I can participate. Thanks.
  • 2
  • 1
    @tahnik Understandable, Have a great day.
  • 4
    Hey everyone!
    ⚡️ devRantron v1.0 has been released ⚡️
    It can be downloaded @ https://devrantron.firebaseapp.com/

    Here are some ⭐️ awesome ⭐️ features included @ launch (more coming down the pipeline)
    🔥 @mention autocomplete in comments.
    🌟 Filter out rants you don't want with keywords.
    ⚡️ Create customized layouts to fit your ranting needs.
    💥 Quick reply to mentions directly from the notifications.
  • 3
    I am using devRantron right now!
  • 1
    I think Electron is the best choice for this..
  • 3
    @VictorMotogna Its already build.
  • 5
    And it all started from here.
  • 0
    I hope this gets released for real.
  • 1
    @sighemoji it uhm… did.

    j- just look up a few comments.
  • 0
    Hey nice, add me up devjoe2016@gmail.com
Add Comment