Giter Site home page Giter Site logo

cvcalendar / cvcalendar Goto Github PK

View Code? Open in Web Editor NEW
3.5K 101.0 619.0 4.62 MB

A custom visual calendar for iOS 8+ written in Swift (>= 4.0).

License: MIT License

Swift 99.28% Ruby 0.45% Objective-C 0.27%
cvcalendar calendarview ios swift swift3 custom-view calendar calendar-view calendar-component swift4

cvcalendar's Introduction

pod License Build Status Twitter

Overview

Screenshots

GIF Demo

Installation

CocoaPods

pod 'CVCalendar', '~> 1.7.0'

Usage

Using CVCalendar isn't difficult at all. There are two actual ways of implementing it in your project:

  • Storyboard setup
  • Manual setup

So let's get started.

Warning! Since 1.1.1 version CVCalendar requires an implementation of two protocols CVCalendarViewDelegate and CVCalendarMenuViewDelegate, please implement both. Also note, they both have a method with the same signature which means you need to impement it only once. Take a look at the Demo project for more info.

Storyboard Setup

Basic setup.

First, you have to integrate CVCalendar with your project through CocoaPods.

Now you're about to add 2 UIViews to your Storyboard as it shown in the picture below.
alt tag

Don't forget to add 2 outlets into your code.

    @IBOutlet weak var menuView: CVCalendarMenuView!
    @IBOutlet weak var calendarView: CVCalendarView!

Two views are representing ultimately a MenuView and a CalendarView so they should have corresponding classes. To change their classes go to Identity Inspector and set custom classes. When it's done, you'll see in the dock panel something similar to the picture below. (Blue UIView -> CVCalendarView, Green UIView -> CVCalendarMenuView)

alt tag

NOTE: Please note that both CalendarView and MenuView are calculating their content's frames depending on their own ones. So in your projects you may be editing the size of initial UIViews in the storyboard to reach an optimal content size.

Important note.
Before we move to setting up delegates for customization stuff, you should know that CalendarView's initialization is devided by 2 parts: * On Init. * On Layout.

As well as most of the developers are using AutoLayout feature UIView's size in the beginning of initialization does not match the one on UIView's appearing. Thus we have either to initialize ContentView with MonthViews and all the appropriate stuff on UIView's appearing or initialize stuff as UIView's being initialized and then simply update frames. The first option doesn't work since there will be a flash effect (the initialization will be finished after your UIView appeared) according to what the CVCalendar has 2 parts of creating.

Since CVCalendarView and CVCalendarMenuView will be created automatically all you have to do is this (in the ViewController that contains CVCalendar).

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()

        menuView.commitMenuViewUpdate()
        calendarView.commitCalendarViewUpdate()
    }

Delegates Setup (Customization).

CVCalendar requires to implement two protocols. They are CVCalendarViewDelegate and CVCalendarMenuViewDelegate. Note that the last one has exactly the same named method as the first one declares which means you have to implement only required methods in CVCalendarViewDelegate and set your controller as a delegate implementing both protocols.

These protocols stand for getting the data for building CVCalendarView and CVCalendarMenuView. So do not forget to implement them.

API Page

A long story in short or customizable properties:

  • Showing weekdays out
  • Moving dot markers on highlighting
  • Showing dot markers on a specific day view
  • Dot marker's color, offset and size
  • Space between week views and day views
  • Day view's label properties (color, background, alpha + different states (normal/highlighted))

Behavior:

  • Day view selection
  • Presented date update
  • Animations on (de)selecting day views

Finally we're going to customize properties. To make this possible you have to implement approptiate protocols. (You can see presented protocols and short descriptions in the Architecture Section). Open your Storyboard and do a right-click on CVCalendarView, you'll see the window with outlets and there are a few ones we actually need. Take a look at the picture to make sure you're doing everything properly.

alt tag

Now depending on what you'd like to change you should implement a particular protocol providing methods for customizing that stuff. For delegates' API description take a look at [this page] (https://github.com/CVCalendar/CVCalendar/wiki).

Do NOT forget to connect a particular outlet with your ViewController if you're implementing its protocol.

NOTE: CVCalendar defines default values for all the customizable properties (i.e. for ones defined in the presented protocols). Thus far if you don't implement protocols yourself the calendar will behave as it was initially designed.

Manual Setup

If for some reason you'd like to setup CVCalendar manually you have to do the following steps.

Initialize CVCalendarView with either init or init:frame methods. I suggest to do it in viewDidLoad method. Do NOT put initialization in viewDidAppear: or viewWillAppear: methods! Then setup delegates if you're going to customize options.

Note that CVCalendarAppearanceDelegate should be set before CVCalendarViewDelegate so your changes can be applied.

For CVCalendarMenuView you simply initialize it as well as CVCalendarView and it requires to implement CVCalendarMenuViewDelegate protocol.

How it should look like.

    override func viewDidLoad() {
        super.viewDidLoad()

        // CVCalendarMenuView initialization with frame
        self.menuView = CVCalendarMenuView(frame: CGRectMake(0, 0, 300, 15))

        // CVCalendarView initialization with frame
        self.calendarView = CVCalendarView(frame: CGRectMake(0, 20, 300, 450))

        // Appearance delegate [Unnecessary]
        self.calendarView.calendarAppearanceDelegate = self

        // Animator delegate [Unnecessary]
        self.calendarView.animatorDelegate = self

        // Menu delegate [Required]
        self.menuView.menuViewDelegate = self

        // Calendar delegate [Required]
        self.calendarView.calendarDelegate = self
    }

And do not forget to commit updates on viewDidLayoutSubviews method.

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()

        // Commit frames' updates
        self.menuView.commitMenuViewUpdate()
        self.calendarView.commitCalendarViewUpdate()
    }

Here you go.

Version matrix

CVCalendar adapts the newest swift language syntax but keeps revisions as stated below:

CVCalendar Swift Xcode Release Notes
1.6 4.x 8.x, 9.x, 10.x HEAD
1.5 3.x 8.x, 9.x swift3-branch
1.4 3.x 7.x, 8.0 Unsupported
1.3 2.x 7.x Unsupported
1.2 1.x 7.x Unsupported

For contributors

If you've any remarks please feel free to open up an issue or submit PRs. Please make sure to adhere to the provided issue template while doing so. Also note that the Demo project is supposed to test the changes on CVCalendar. If you've committed any, do not forget to check if everything compiles and works as intended and update the docs accordingly. Thanks ๐Ÿ‘

cvcalendar's People

Contributors

antoine4011 avatar antondomashnev avatar daltyboy11 avatar dbmrq avatar elsesiy avatar isanhu avatar jobinsjohn avatar joelwass avatar justinctlam avatar kevalvadoliya avatar kmonde89 avatar marcpages avatar mozharovsky avatar neugartf avatar nexon avatar oscarmorrison avatar ozgur avatar paulo-branco avatar roymckenzie avatar sairamkotha avatar shallad avatar shoheiyokoyama avatar skywinder avatar sprint84 avatar terrypanghoming avatar thomasbaldwin avatar timroesner avatar ts-alexandros avatar wanbok avatar xputnikx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cvcalendar's Issues

CVCalendarView doesn't load on when Simulated Metric == iPhone 4-inch

Hi there,
It seems when you have your view controller set to iPhone 4-inch in the storyboard, the calendarView doesn't load on devices older/smaller than the iPhone 6. Not sure why this is but you can test it in your new demo.

Steps to reproduce:

  • Open most recent version of demo in Xcode
  • Go to storyboard and select the viewController
  • Under attributes inspect, set size to iPhone 4-inch
  • Build and run on iPhone 5S.

Thought I'd save others a bunch of time by reporting it here.

Selection animation

Implement nice animations on:

  • Selecting
  • Deselecting

a day view.

In perspective: providing an API for users' custom animations.

Scrolling into the past

Hey buddy,

Thanks for the awesome calendar. I'm modifying it a bit to match my needs, can you tell me what would be easiest way to disable scrolling into a monthview where all the dayviews (except for isout maybe) are in the past? For example, if today is April. I want to be able to only scroll forward from April and not backwards.

Thanks!

Init CVCalendar with a specific day in current month

I have a problem when i'm instantiate cvcalendar 2 times or more . After the second time I lost the top marker on current day and didSelectDayView() is not called
Overall I can't instantiate cvcalendar with top marker on specific day in the same visible month. Is it possible?
toggleMonthViewWithDate() works only if I'm not in the current month. It will be great if we can select a day by code with a date in parameter

Change selected date when toggleMonthViewWithDate is called

Wouldn't it be logical if toggleMonthViewWithDate would also select that date? Especially if the calendar is currently selecting another date?

self.calendarView.toggleMonthViewWithDate(someDay)

Or is there another way of changing the selected date programmatically? I think that would be a nice addition.

Must call a designated initializer of the superclass 'UIView'

I got this error message after update my xcode to 6.3.1.

/Users/MNurdin/Documents/iOS/xxxxx/Pods/CVCalendar/CVCalendar/CVCalendarDayView.swift:30:9: Must call a designated initializer of the superclass 'UIView'

File CVCalendarDayView.swift, line number 30.

CVCalendar-Release [1.1.0]

Branch

Develop

Enhancements

  • Date range selection #12
  • Multiple dates selection #32
  • Day views interaction disable #20
  • Personal background color for every day view #27
  • Change rotation mode (re-render)
  • Custom markers #49
  • Min/Max month view for load
  • Cache scrolling #55
  • Supplementary views for day views #61
  • Views reuse
  • Transition animation between modes (week-month) #17
  • Multiple dots for day views #27
  • Update dot markers (e.g. if some day views shouldn't have ones anymore) #27
  • Localization
  • Custom fonts for both menu and dates' labels
  • Dynamic content size (week and day views)

Major bug fixes

  • Committing frames' update only once #18 #22 #31
  • CVDate math for days out #23
  • Toggling to current day view if it isn't selected #30
  • Unmanaged dragging of content view (scroll area)
  • Top marker glitch on first load
  • Glitch on chaotic scroll
  • Delay on appearing (make a lazy init on content view)
  • Major optimisation (retain cycle issue between views)
  • Delegate notification on toggling or month change
  • Interaction with invisible day views
  • Double first day in month selection
  • MonthContentViewController optimization
  • WeekContentViewController optimization
  • iOS 7 <-> iOS 8 bridging #50

Documentation

  • Update documentation (better struct, usage section)
  • Write an article on using CVCalendar with all features
  • Record a video in a couple with the article

Current day highlighted text overlay bug.

The gif below describes it much better than I can, but essentially, when I toggle between tabs the currently highlighted day produces a text overlay bug of sorts. I'm currently searching for a solution, but I'd thought I'd see if you have any quick fixes first.

cvcalendarbug

Xode 6.3 beta using Swift v1.2

Hey, today I tried to run my project in Xcode 6.3, with Swift 1.2, and it gave me a lot of Warnings (deprecated stuffs) and errors, which are easily fixed in my case. And I think the code turned out to be better because of that.
But also your calendar gives errors here and there. Mostly where you initialize your classes. So maybe it might not be bad to try to beta before you release your calendar and see if you can optimize your code before that. So when they force the new Xcode your calendar will still work.
screenshot 2015-04-08 11 31 28

I'm not sure how to fix those my self, so until then I revert back to the last non beta version of Xcode:)

CocoaPods installation

For some known bugs in both Xcode 6 and CocoaPods it's currently unavailable to make a spec for CVCalendar. As well as I'm not guru of CocoaPods maybe I'm missing something while validating a spec file, so if anybody knowns what can be wrong I'll appreciate it.

My spec code.

Pod::Spec.new do |s|
  s.name         = "CVCalendar"
  s.version      = "1.0.1"
  s.summary      = "A custom visual calendar for iOS 8 written in Swift."
  s.homepage     = "https://github.com/Mozharovsky/CVCalendar/tree/1.0.1"
  s.license      = "MIT"
  s.author             = { "Eugene Mozharovsky" => "[email protected]" }
  s.ios.deployment_target = "8.0"
  s.source       = { :git => "https://github.com/Mozharovsky/CVCalendar.git", :tag => "1.0.1" }
  s.source_files  = "CVCalendar", "CVCalendar/**/*.swift"

  #s.screenshots  = "https://raw.githubusercontent.com/Mozharovsky/CVCalendar/master/Screenshots/Pic1.png", "https://raw.githubusercontent.com/Mozharovsky/CVCalendar/master/Screenshots/Demo.gif"
  #s.platform     = :ios
end

Error:

    - ERROR | [xcodebuild]  error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: unknown option character `X' in: -Xlinker

Can not view MonthView mode

Hi,

Thanks for beautiful calendar view.
I setup Default project download and run in simulator iphone 5

I setup in info.plist file MonthView
But i have a problem, i can't view the mode .MonthView. the layout show not correct , maybe wrong size, i adjust by code but not get any luck!.

Ability to show only 2 weeks?

Hello, I read the docs as best I could but didn't find the ability to just show the last, say, two weeks instead of the entire month.

Thanks,

Spelling error

You spelled "Architecture" wrong in the README.. currently it says "Arcitecture".

Can't run on iPhone 4 (7.1.2)

Hi,
i tried run cvCalendar-Demo on my iPhone 4 (7.1.2) but getting error "2015-01-14 13:07:06.278 CVCalendar Demo[479:60b] Could not load the "present-100" image referenced from a nib in the bundle with identifier "com.gameapp.production.CVCalendar-Demo"

i delete present-100 image but getting another error

fatal error: unexpectedly found nil while unwrapping an Optional value on startup
untitled

i set deployment target 7.1 it running on simulator but doesn't run on iPhone

Thanks

Month View segue

Top markers in day views look ugly on segues. So when a segue on month views is applied we simply make top markers in days of current month view hidden.

Top markers are not always shown on the iPad2

On IPad2 only for months that have either 4 or 6 weeks not all top markers are properly displayed.
It works fine for months with 5 weeks and also on iPad Retina

If I change 0.5 to 1 here in CVCalendarDayView.swift it works fine. Could it be that 0.5 is to narrow to be displayed?

        func createMarker() {
            let height = CGFloat(0.5)

PS. Great widget - thank you!

i want to add some event for dates ?

Hi i checked your sample app. i saw some dot under the numbers,
How can i change the date with dot and
is there any way to put some information when they touch the numbers (pop-up menu) i want to add some event and when the user touch it they will see the detail ?

Prevent from tapping days?

Hello,

Is there a way to prevent the user from selecting any individual dates on the calendar? I know I could use userInteractionEnabled but I still want people to be able to scroll through months.

Thanks,

ReloadData() is missing

Hey,

thank you for writing this awesome control. Currently I am designing a calendar which updates in the background. However I can not be sure to have all the data available, as soon as the view did appear. I am searching for a possibility to reload the data (for the dots and dots color) of the calendar view. I tried a few solutions like

let monthView = self.calendarView.contentController.presentedMonthView
monthView.reloadWeekViewsWithMonthFrame(monthView.frame)
self.calendarView.commitCalendarViewUpdate()
self.calendarView.toggleTodayMonthView()

but nothing seems to work in a nice manner.

I hope you can help me or add support for this in the next version.

Thank you in advance.

Segue on selecting days out

When a user clicks on days out of the presented month, the current month in CalendarView should be updated in the appropriate way according to the selected day's attachment.

Labels for all the dates repeatedly getting darker with each frame update on viewDidAppear on projects with uitabbarcontrollers

I currently have a project that implements UITabBarController. I placed my calendar in one of the tabs. Ever time I go back to the calendar, all the labels for the dates seem to be getting more darkened as if more dates are spawning on-top of existing dates. I looked over at my memory and each time I would go back to the tab containing the calendar the memory would increase about 1 MB each visit, once it got to a certain point swiping would appear to be sluggish. The "darkening" effect only occurs whenever I go back to the tab multiple times, I identify the behavior when the console says "Updating 1".

Prevent scrolling between weeks or months

I'm working on an app that just needs to display one specific week. I've loved working with CVCalendar, but am wondering if there is a way to prevent users from scrolling between the next/previous week without heavily modifying the scrollview implementation.

Thanks again for making this @mozharovsky!

Month loading

Create a ScrollView for scrolling (left-right directions) between 3 months:

  • Previous
  • Current
  • Next

A monthHolder view is simple a 'window' for the scroll view, since the previous and next months' views will be hidden until getting on monthHolder view area. Months out will be simply removed with the following loading a new one.

Crashes on iOS 7

Hello and thanks for the calendar component, it's the best i've found for iOS devices.

This component is working properly when i run it on iOS 8 simulator, however, when i try to execute it on my iPod touch with iOS 7 it crashes on the line where it multiplies the value of countOfWeeks * 7. I did notice that on the method monthDateRange (within CVCalendarManager.swift), the value for the range of the month equals to this on iOS 7: range = Optional((2147483647,2147483647)), the strange thing is that on iOS 8 the value is often between 18 and 6. The crash actually happens because the int variable cannot store a number that large.

Before this problem i had another where it crashed setting the value for the calendar variable, again only on iOS 7 and not iOS 8, so i had to change from:
self.calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)

to this declaration:
self.calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)

Cannot get date on didSelectDayView

Hey everyone, I guess I found a bug within CVCalendar. I'm trying to use didSelectDayView to get the date selected by a user, but even with if let, I can't try to read the current date:

func didSelectDayView(dayView: CVCalendarDayView) {
    NSLog("hey ye")
    if let finalDate = dayView.date? {
        NSLog("hey ye. data final eh: ")
        println(finalDate)
}

This crashes the program, with the message: Demo[12217:277145] hey ye. data final eh: fatal error: unexpectedly found nil while unwrapping an Optional value (lldb).

It crashes when the app launches, not when I click the date. Tried this in the demo projectDoes anyone know how to solve this, please?

Day animations stopped working

Hi Euegene,

I noticed that the little dots are not animating down any more (upon day selection) in the demo app. Maybe your refactoring broke something?

Tieme

Showing 1 week

Hey, great job on the Calendar so far!
One question,
Is it possible to show just one week of the monthview, so I have more space to put some information under the calendar view?
Or do you plan to extend the calendar to have a separate month/week and day view?

Henk-Martijn

CVDate with month = 0 and month = 13

Little bug in CVCalendarDayView on line 81, where it increments months up to number 13 and 0. My fix for it:

var year = calendarManager.dateRange(self.weekView!.monthView!.date!).year
var month: Int? = calendarManager.dateRange(self.weekView!.monthView!.date!).month
if self.isOut {
    if day > 20 {
        if (month! == 1){
                month! = 12;
                year -= 1;
        } else {
                month! -= 1
         }
    } else {
        if (month! == 12){
            month! = 1;
            year += 1;
        } else {
            month! += 1
        }
    }         
    if !shouldShowDaysOut {
       self.hidden = true
    }
}`

Custom Dot Image / Year View

Hi,

I am interested in using this library for an upcoming calendar app I am making however I had two issues which I wanted to discuss. The first is if it would be possible to include a custom image for a specific day instead of a dot. For example if there was a birthday event that day, I could supply a picture of birthday gift box.

Also how difficult would it be to implement a yearly view which just shows every month with their respective days and when you tap the month it just cycles to the monthly view of the selected month?

Thanks!

Must call a designated initializer of the superclass 'UIViewController'

I got this error message after update my xcode to 6.3.1.

/Users/MNurdin/Documents/iOS/xxxxx/Pods/CVCalendar/CVCalendar/CVCalendarContentViewController.swift:34:9: Must call a designated initializer of the superclass 'UIViewController'

File CVCalendarContentViewController.swift, line number 34.

Appearance Doesn't update for the next and previous months

When using the CVCalendarViewAppearanceDelegate to set the label text color and so forth, swiping to the next or previous doesn't reflect those changes. Once I swipe to the following month and then swipe back, then they are updated. Am I not implementing something? If possible, can you look into this ASAP? I have an app this is close to be finalized and I would like to have this fixed before I submit it for review.

Thanks a million!

Current calendar date does not update when date changes.

I'm not sure if this implementation is supposed to be left up to the user or not, but I noticed that the current date in the calendar does not update when the real date changes.

I'm assuming that's because the calendar is only committed once during viewDidLoadSubviews. In any event I thought I would point it out, in case it would make for an enhancement, or perhaps it's best left up to the user to implement.

Ability to jump to any month

Not so much a bug, just an enhancement I thought would be cool. Maybe make a delegate method loadMonth(int monthNumber) where monthNumber is the month to switch to (i.e 0 is January and 12 is December)

Selected date gone after swiping two months forwards and back.

Hi (-:
I am using the the sample project.

  1. Select a date (date is circled with blue background)
  2. Swipe to next month.
  3. Swipe again to the next month.
  4. Swipe back (twice) to the original month.
  5. The blue circle from the selected date is gone.

I would expect the selected date to persist when I swipe away to different months.
Is it expected behaviour? am I missing something here?

(The controller is great! We are about to ship a product with it, can this issue be addressed ?)

Scrolling fast between months

When I keep scrolling right quickly, instead of going to previous months it goes to new months (the direction is opposite). Same thing happens in the other direction..

Returning to CVCalendar with a selected date renders day label incorrectly

I am having an issue where after selecting a day (shown in blue), transition to a detail controller, and then returning back to the calendar, the selected day has the number label drawn in black on top of it.

Running through the drawing code it appears there is a check for "current day", but not "selected day", and it is draws the regular label on top of the blue circle.

screen shot 2015-02-20 at 5 53 25 pm

Demo - showing days our toggle not working

Dunno if you appreciate yet another issue, but just wanted to inform you that the toggle at the bottom of your demo app is doing nothing. Both not in master nor develop.

Tieme

Selecting multiple dates ?

When selecting a date a blue circle appears around the day.
Is there a way in the api to enable selection of multiple dates ?

Select Date Range

Not much of an issue but a request. :)

Would be great if I can select a date range and get those selected dates.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.