Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help Wanted鉂楋笍馃挵 #16

Closed
1 of 6 tasks
w0lfschild opened this issue Oct 5, 2019 · 30 comments
Closed
1 of 6 tasks

Help Wanted鉂楋笍馃挵 #16

w0lfschild opened this issue Oct 5, 2019 · 30 comments
Assignees
Labels
help wanted Extra attention is needed Reward 馃挵馃挵馃挵 support Support the project
Projects

Comments

@w0lfschild
Copy link
Member

w0lfschild commented Oct 5, 2019

A few things I need support with for this project and am likely willing to pay some small amount for meaningful assistance with:

High priority :

  • Website for browsing / installing plugins
  • Support on backend development (Firebase)

Medium priority :

  • Security improvements
  • Code cleanup / Refactoring

Low priority :

  • Translations

Done

  • New more professional and cleaner icon set (Dock and menubar)

You can also check out the Projects page for a basic 1.0 roadmap.

@w0lfschild w0lfschild added the support Support the project label Oct 5, 2019
@w0lfschild w0lfschild self-assigned this Oct 5, 2019
@w0lfschild w0lfschild added this to To do in Version 1.0 via automation Oct 5, 2019
@kingtosh
Copy link

kingtosh commented Oct 5, 2019

Please tell me icons specifications you need, maybe i could assist for icons.

@w0lfschild
Copy link
Member Author

w0lfschild commented Oct 5, 2019

@kingtosh

For sizing:

For the menubar:

  • Preferably very similar or the same design as the main app icon
  • Must look visible in Grayscale (black & white)

For the main app icon:

  • Vector image if possible
  • Preferably the logo would be inside a circular border with a gradient background similar to the app store icon or many other stock apps.

appstore ibooks

  • Preferably the logo would be simple with a minimal amount of complexity.
  • Preferably the image would be based around either

Forging something or MacOS default KEXT icon

@w0lfschild w0lfschild changed the title Help Wanted鉂楋笍 Help Wanted鉂楋笍馃挵 Oct 7, 2019
@w0lfschild w0lfschild pinned this issue Oct 13, 2019
@w0lfschild w0lfschild moved this from To do to In progress in Version 1.0 Oct 30, 2019
@w0lfschild
Copy link
Member Author

New icons have been acquired.

@w0lfschild w0lfschild added the help wanted Extra attention is needed label Nov 14, 2019
@npyl
Copy link

npyl commented Dec 24, 2019

Hi! I am interested in helping out with cleanup and probably backend using Firebase.

I currently have some notes on improving the app. These are:

  • Fixing the remove bundle functionality (actually already have done it on my branch: 1c082a9)
  • Fixing the Installing, Removing and then Reinstalling a bundle mechanism which for some weird reason seems broken (GET button is inactive after this particular cycle.). 35c3d72

Update: After some small digging I think that the issue lies within pluginDelete: you immediately classify the bundle as paid and assign the action InstallOrPurchase which when called fails because there is no paddle information inside a free-plugin.

  • That said, I think a very nice way of approaching the synchronization logic on installing a bundle is using completion handlers (support is incomplete inside pluginUpdateOrInstall). This way, we take into consideration the possible events of:
    a) Wanting to just install a bundle without the whole UI freezing
    b) Wanting to install multiple bundles without waiting for each of them to finish.

Example: 98656ac

  • On bundle view, the GET button needs to have a progress bar because the user has no way of knowing if the plugin is installing or something failed.
  • Probably improve error reporting when Installing, Updating, Uninstalling a plugin

These are some of my ideas and the implementation for them.
I think the app runs nicer now.
With some minor refactoring, improving code and some cleanup the app will be a bliss.

@w0lfschild
Copy link
Member Author

@npyl

That's awesome, thanks! Agree that the app needs some refactoring as well.

I've applied all the changes in your branch as well as a few I had already made and I'll be pushing out an update soon.

@npyl
Copy link

npyl commented Dec 26, 2019

Hey @w0lfschild
Thanks for merging my patches.

I just rebased and encountered a problem: MacForge starts up, prints a lot "hol up" messages and doesn't respond to Remove and Donate.

Update: okay nothing serious, I think you accidently unlinked the referencing outlets or upon merging of patches my patch didn't get merged correct. I just linked them back and they work. :)
The "hol up" message persists though.

One thing to note, the Bundle View needs a progress bar for the GET button.

Also, I am quite interested in Firebase integration.
Did you encounter problems with it? (I noticed portions of commented-out code.)
I am also interested in that reward amount. How much would that be for the Firebase Integration?

@w0lfschild
Copy link
Member Author

w0lfschild commented Dec 26, 2019

@npyl

  • Pretty sure I unlinked both the remove and donate button in the latest build. 馃槄
  • "hol up" was just me doing some testing as a few users were getting an error

Assertion failed: (c != nil), function +[MFInjectorProxy injectPID:::], file /Users/w0lf/GitHub/wb_MacForge/MacForge/MacForgeHelper/MFInjectorProxy.m, line 19

I just don't really know much about databases and or web specific languages to be able to do that stuff myself.

Currently the code is commented out because adding Firebase to the project just increases compile time and adds like 30MB to the app size so until I have something more meaningful than logining in and out and setting a profile image I just removed the code and frameworks.

As for pay, not really sure, probably a few hundred dollars ideally if someone could kind of teach me a bit about what they end up implementing. I also just don't know the difficulty level of what I'm asking is. I'd honestly imagine it's not too hard if you know what you're doing.

@npyl
Copy link

npyl commented Dec 26, 2019

Hey
Okay, at some point I realised it must have been a stale debugging thing so I changed != to ==. 馃槅

As for Firebase, I am still interested. I myself am not very well versed with web stuff though I am willing to take a stub on it.

I will have a look at it these days, actually.
Oh, btw, happy holidays.

@npyl
Copy link

npyl commented Dec 29, 2019

Hey,
I've been digging around, learning Firebase and checking-out the code and I have realised I have some questions:

  1. How do you want the user-related views to work?

I think that the user shown on the sidebar on the left needs to be the one currently signed-in.
If nobody is signed in, then the name should be that of the current OS-user.

On this mindset, there need to be 2 kinds of views:

  • Account sign-in (with ability to register a new user)
  • Account sign-up (the view that implements the ability mentioned on previous bullet)

Is this how we want to do things?

later tomorrow I will implement the UI stuff and I will provide a link for you to check out my concept and tell me your ideas DONE

  1. I am a bit confused on how selection of views is implemented. Which methods are used in for changing the selected view, in particular?
    (I think I will understand sooner or later, anyway)
    Okay, got it. It happens through -selectView:.

My work so far can be inspected in this dev branch. I have realised that, as of right now, I've, pretty much, reached at the same state as your code when you decided to stop (regarding user authentication). Learning Firebase has been quite interesting and delightful up until now; and the process of integrating it has been seamless so far...

I have tried to keep the code clean, neat and distinct. I try not to change stuff on the body of the program. This should help you cherry-pick my patches easier, I think. Hope you like it so far.

@w0lfschild
Copy link
Member Author

@npyl

Yeah as you probably noticed I had already made some basic sign in views.

If you actually go back a few versions of MacForge before I disabled the account tab you could already create / sign in and out / update an account but since it served no purpose not a single person did.

As I said earlier

Currently the code is commented out because adding Firebase to the project just increases compile time and adds like 30MB to the app size so until I have something more meaningful than logining in and out and setting a profile image I just removed the code and frameworks.

As for what you've done. It seems fine so far.

  • Trying to add a picture crashed the app if I cancelled and then I wasn't able to get back to that screen again.
  • The views don't seem to be lining up right

@bermudalocket
Copy link

bermudalocket commented Jan 2, 2020

@w0lfschild Hope you don't mind if I piggyback off your conversation here. I am interested in helping with cleanup as a means to getting more familiar with obcj and swift. I'm not sure I could contribute anything terribly useful but there are a few GUI tweaks I have in mind. Mostly minor annoyances that I've come across, such as not being able to see the full description on the update tab.

I'm running into an issue trying to build the project after a clean clone:
error: Build input file cannot be found: '/Users/bermudalocket/git/MacForge/MacForge/MacForge/GoogleService-Info.plist' (in target 'MacForge' from project 'MacForge')

Unfortunately I'm not familiar with Firebase. A quick search led me to a Firebase documentation page mentioning that you have to sign in to your Firebase account to download said plist file... which can't be right? So now I'm here!

ETA: I can get the build to succeed if I remove the plist from the corresponding build phase, but that also doesn't seem like the correct answer.

@w0lfschild
Copy link
Member Author

@bermudalocket

Removing the GoogleService-Info.plist should be fine.

@w0lfschild
Copy link
Member Author

@npyl

Just pushed out a commit that implements some of your stuff from your dev branch in the way I envision the account view working.

@npyl
Copy link

npyl commented Jan 5, 2020

@w0lfschild
Hey
I checked it out.
I liked the design but I think there needs to be some kind of changes related to user creation.

I find it more convenient to be able to directly set the username and user photo through the 螒ccount Sign In view.
I don't find it practical to have to go to User Info and then Update.
That's only an idea though. :)

One more thing. I've started meddling around with Firebase Database and its seems like it should be fairly easy adding a Ratings and Reviews. I've even started coming up with some basic structure for the database.

Keeping track of purchases, I guess, shouldn't be any more difficult but, I am not quite sure about the way we want to treat them.

These are my concerns; Imagine this case-scenario:
I am a normal macOS user and I open MacForge for the first time.
From there, I first decide to go get some free bundles and at the end I get some paid ones.

  • Question 1: What happens when I create an account and login?
    • 1.1
      Should there be syncing functionality (your OS-user's purchases-list gets updated on the database and so-forth).
    • 1.2
      In that case, should there also be syncing of the plugins? (I mean, if we want to protect the developers the plugins-directory should be updated depending on the logged-in user)

Doing 1.2 may mean big download times, but this could be circumvented with ways I can think of (for example, "branding" which paid bundles can be used by which users).

  • Question 2: If the answer to Question 1 is yes, then wouldn't this scheme defeat the purpose of multiple MacForge users being accessible from same macOS-user? Should we somehow pair a macOS-user to a single MacForge-user?

This may be updated later; Please take these thoughts into consideration but most likely expect some changes

@w0lfschild
Copy link
Member Author

@npyl

I don't mind having user name a photo assigned at creation but they're also unnecessary and can just be the user profile name and icon by default.

Answer 1.1
I'm not sure about syncing functionality but certainly I think it would be nice to keep track of purchases and be able to download them from the account view.

Answer 2
Right now I don't think there is any reason to put in work relating to multiple users on one computer because the number of instances of that are probably close to or equal to 0.

@npyl
Copy link

npyl commented Jan 13, 2020

Okay @w0lfschild ,

When it's done, I will send you a video showing the result.

Finally, If you decide that you like my work I will publish half of the end-project on Github (Ratings & Reviews support) and will expect a 50% payment of the reward.

I will publish the rest (and final) 50% (Purchases support) after the 1st payment.

I guess we could start talking about the reward when you see the video (?).

I will also provide support (without reward) for any problem that comes up with my code upon soon notice and I agree to help you understand / learn any part of the newly-added code.

[As for this, I honestly think that the trickiest part is the Database security code]

I am not sure if you like my terms; please tell me if anything better comes to mind or you have any objections, I'm generally open to proposals.

Thanks for the cooperation,
Nick

@w0lfschild
Copy link
Member Author

@npyl

Do you have discord or some other way of instant messaging instead of conversing through this issue?

@npyl
Copy link

npyl commented Jan 14, 2020

@w0lfschild
Sure, my tag is npyl#8111

@w0lfschild
Copy link
Member Author

@npyl

Sent you a friend request.

@w0lfschild
Copy link
Member Author

w0lfschild commented Jul 30, 2020

Well thanks for the offers.

At the current time I'm not sure about translations until I get the majority of the 1.0 design squared away.

In terms of web-design though, yeah I could use help with that. Basically I'd like to have a page of all the plugins generated from https://github.com/MacEnhance/MacForgeRepo/blob/master/repo/packages.plist

I don't know much about web languages but I'm guessing the best solution would probably be Javascript to process the packages.plist and generate the page from that.

@w0lfschild
Copy link
Member Author

w0lfschild commented Jul 31, 2020

Ah yeah you'll need to open terminal and go

cd ~/Documents/MacForge/MacForge
pod update

@w0lfschild
Copy link
Member Author

@luixiuno

If you want me to share the beta of MacForge the ETA might be 30/31 jul

No

Where does Xcode save the build?

Depends, you can set it up to build to anywhere. By default it saves to:
~/Library/Developer/Xcode/DerivedData/<ProjectName>-<RandomString>/Build/Products/Debug/<BuildName>

Great, more errors

Not sure what to say, looks like an issue with pods, you have to close and re-open the project after fetching pods. You might also get those issues from using the .xcodeproj, you should be opening the .workspace instead.

Why is there no beta downloads?

Because I'm not ready to release any...?

@w0lfschild
Copy link
Member Author

I truly appreciate your enthusiasm, I'm just not sure I can help you build it. It's hard to tell what's going on another persons computer.

Would you just like me to build a copy for you or are you more interested in building it yourself?

@w0lfschild
Copy link
Member Author

Maybe try this: https://stackoverflow.com/a/55086382

@w0lfschild
Copy link
Member Author

w0lfschild commented Aug 1, 2020

You're losing me here @luixiuno

Yes, I鈥檓 tryna make my own version of brew.sh plugin searcher, i changed my mind, imma ma ke a webpage like nito TV website, please give me a link like, Macforge://redirect-to-tweak name
here or tweak ID <-- EDIT please build this

I'm not sure what you mean?
You can already link to bundles in MacForge https://github.com/MacEnhance/MacForge/wiki/Bundles-:-Linking
What's nito.tv or brew.sh got to do with any of this?

Ok I need a copy, if you could make a copy for me then put it in a link then after some secs delete the comment

Are you asking for a copy of MacForge built for Big Sur?

Does The Webpage Have To Look Modern?

What does that even mean? If you're asking if I just want a webpage of plain .html with no styling then the answer is no. I'm not sure if you're aware but I already have my own website https://www.macenhance.com/

So, I need a copy for my Big Sur, not hackintosh

I don't know what this is referring to

Anybody here?

Please stop spamming, it wont make me respond any faster.

@w0lfschild
Copy link
Member Author

MacForge.zip

@w0lfschild
Copy link
Member Author

Don't turn off AMFI.

Instead you should disable Library Validation.

Copy pasted from Discord:

Important message!

If you are currently using MacForge and have turned off Apple Mobile File Integrity (AMFI) using the command nvram boot-args="amfi_get_out_of_my_way=1"

You will not be able to add applications to System Preferences > Security & Privacy > Privacy. This can completely prevent some applications form functioning or break critical functionality.

In order to fix this issue, follow the steps below:

open terminal and run the commands
sudo nvram boot-args=""
sudo defaults write /Library/Preferences/com.apple.security.libraryvalidation.plist DisableLibraryValidation -bool true
reboot

An updated version of MacForge should hopefully be coming out soon鈩笍 with a built in warning and automation of these steps.

@w0lfschild
Copy link
Member Author

What preference bundles?

@w0lfschild
Copy link
Member Author

What? I don't even know what you're saying.

@w0lfschild
Copy link
Member Author

@luixiuno No problem, nobody (including yourself) is obligated to help.

I'm well aware I likely won't ever get any meaningful support on the project and that's fine with me. This issue is 2 years old at this point after all.

@w0lfschild w0lfschild unpinned this issue Mar 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed Reward 馃挵馃挵馃挵 support Support the project
Projects
No open projects
Version 1.0
  
In progress
Development

No branches or pull requests

4 participants