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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create submodules / subspecs #122

Closed
p4checo opened this issue Apr 30, 2018 · 6 comments · Fixed by #195
Closed

Create submodules / subspecs #122

p4checo opened this issue Apr 30, 2018 · 6 comments · Fixed by #195

Comments

@p4checo
Copy link
Member

p4checo commented Apr 30, 2018

Since framework users might only be interested in a subset of the framework's features, it makes sense to allow partial importing.

CocoaPods allows this to be done quite easily by using Subspecs

Carthage seems to have no official support for this (and it might even be against their philosphy)

Perhaps in the future it might make sense to break Alicerce into smaller µFrameworks, because this issue will tend to worsen as we add more functionalities to it 😅

@beloso
Copy link
Collaborator

beloso commented Apr 30, 2018

I would like to help out with this. But I need to have a greater understanding of what subspecs would make sense. And probably the project's file structure would need to adapt to that.

@p4checo
Copy link
Member Author

p4checo commented Apr 30, 2018

Great! 💪

Agreed, we should discuss what subspecs make sense, and we will most likely have to restructure the project.

On a first analysis, I could see the following subspecs (to be used as a starting point):

  • Core (Shared stuff, eg. Resource)
    • Core/Utils (Extensions, Observers, Utils)
  • Analytics
  • DeepLinking
  • Logging
  • PerformanceMetrics
  • Stores (dependent on Network and Persistence)
    • Stores/CoreData (in the future?)
  • Network
  • Persistence
    • Persistence/CoreData
  • UI
    • UI/BaseViews
    • UI/Utils (UIKit and QuartzCore extensions)
    • UI/ReusableView

@beloso
Copy link
Collaborator

beloso commented May 1, 2018

Perhaps we should wait for the discussion of #111 as it seems relevant to this no?

@p4checo
Copy link
Member Author

p4checo commented May 1, 2018

Well, in regards to Resource I agree it's relevant.

However, we can assume something like Core/Resource that all dependent subspecs will require (e.g Network, Persistence), even if each one of them will have their own specialized Resource subtypes eventually.

I'm just saying this so that we can move forward with this discussion.

@AlexanderNorway
Copy link

Any update on this?

@p4checo
Copy link
Member Author

p4checo commented Apr 22, 2019

Hi @AlexanderNorway 🤝

I've picked this up and will open a PR in the coming days.

Out of curiosity, what parts of Alicerce are you using, or would be interested in?

Cheers! 🍻

@p4checo p4checo self-assigned this Apr 22, 2019
p4checo added a commit that referenced this issue Apr 30, 2019
At long last, here are the first subspecs of Alicerce!
Sorry for the delay 😇

Essentially, the subspecs were a mapping of our already existing
internal folder structure, with some exceptional groupings.

Currently defined subspecs are:

- Core (Extensions, Utils and Shared)

- Analytics

- Deeplinking

- Logging

- Network

- UI (Observers, QuartzCore, UIKit)

- PerformanceMetrics

- Persistence

- Resource

- Stores

- View

Closes #122.
p4checo added a commit that referenced this issue May 4, 2019
At long last, here are the first subspecs of Alicerce!
Sorry for the delay 😇

Essentially, the subspecs were a mapping of our already existing
internal folder structure, with some exceptional groupings.

Currently defined subspecs are:

- Core (Utils and Shared)

- Analytics

- Deeplinking

- Extensions

  + Foundation

  + QuartzCore

  + UIKit

- Logging

- Network

- Observers

- PerformanceMetrics

- Persistence

  + CoreData

- Resource

- Stores

- View

Closes #122.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants