Ganttis logo
  • Background
    2.2 | for macOS and iOS development
    Cocoa | Cocoa Touch | SwiftUI | Xcode

Present any timeline with ease

Interactive and highly responsive. Your customers will be amazed.

Super library, super benefits:

  • macOS and iOS development
  • stunning performance
  • few to trillions of items
  • views for building SwiftUI apps
  • drag and drop, dependency lines
  • expand-collapse, outline (macOS)
  • highly configurable
  • standard and specific calendars
  • zoom with pinch gestures (iOS)
  • custom styles, themes, dark mode
  • detailed documentation, samples
  • full-featured and unlimited free trial
  • unlimited free support
  • help provided directly by devs
  • support available during trial period
  • DlhSoft: 15+ years of Gantt charts

iOS demo screenshot

macOS demo screenshot

Customize everything to fit all requirements

Data source, dependencies, schedule definitions, behavior, appearance, and even drawing

Interactive Gantt charts

State-of-the-art diagrams with drag and drop support and all dependency types needed, optional outline view (macOS), and auto-scheduling behavior.

Beautiful as your app

Built-in and custom themes for both light and dark modes, highly configurable appearance and behavior, and complete localization support.

For any timeline and calendar

Extremely customizable timeline: scrollable interval, zoom level, visible and working days/hours with fixed or periodic holidays and breaks (possibly different for each item!), built-in or custom header intervals and formatting, including generic counters of all or only working weeks or days of a project.

Supporting multiple bars per row

Highly optimized engine for presenting and managing any number of bars per row with any dependencies between them, complemented by paging-enabled outline loading mechanism (macOS): resource scheduling, recurrent tasks, infinite scrolling with virtualization — all become a breeze.

A magical developer journey

Explore, engineer, release. Your code will work like a charm.

  • Create powerful management tools for Macs

    Have you already developed Mac apps before? Or maybe you have a macOS app in development right now? Ganttis components are a natural choice for you to present anything that time based there, instead or besides of grids and other plain views. You'll surely love integrating the framework into your app(s) and your customers will surely appreciate having their data beautifully visualized in a specialized diagram.

    On the other hand, however, if you have only developed Windows (or Linux?) and Web apps before, please just look around. Every manager has a MacBook nowadays. And because your current app is only available for another OS — and at most you have provided a light version of it running on the Web — they cannot use it at all or it doesn't work in the native way they expect for the software running on their (beloved!) computer. You can use Ganttis framework to develop an easy to use macOS project management solution in no time at all: grab a Mac yourself and try it today.

  • Mobile first, mobile next

    People love iOS, and we confirm: it's an excellent mobile platform — not only from the user experience's perspective, but also for developers that want to add it as a native target of their apps. Quality macOS tools need quality mobile counterparts; and iOS offers the perfect background to get there. Especially if you want to help the same managers with Macs who would surely also use iPhones or iPads when they are away.

    GanttisTouch components were built to be as similar as possible to configure as their macOS sisters, but to also provide support for the touch based activities that iOS features, like zooming in and out with pinch gestures and tapping and long pressing to perform certain actions on selected items and miscellaneous chart areas. You can present the same type of diagrams on small screens as on Macs, and if your users' data is stored at a central location such as on iCloud, you can write code to easily synchronize it between both types of devices.

  • Set up items; virtualize 'em to obtain incredible performance

    A Gantt chart controller may be configured to use either a built-in item source based on a classic array, or — to obtain the highest performance — you can define your own item manager and return only the actually visible items based on the current row range and timeline page in the viewport (set up for you on the item manager instance by the component).

    You can optionally choose to limit items and present a single one per row if needed, but a Gantt chart can easily be transformed in a Schedule chart otherwise. Regardless of the data source type, you will be notified through a specialized delegate whenever the items change, to be able to pass the updates back to the persistent storage, as needed.

  • Add dependency lines, add clarity to the project

    You can add all types of dependencies between items in the diagram: from finish to start, from start to start, from finish to finish, or from start to finish. And if you virtualize items, you can also virtualize item dependencies. Of course, end users can also intuitively create dependencies using drag and drop operations (unless you disable the feature), and you would be notified when this happens.

  • Schedules and headers: master the engine

    Schedule definitions control included and excluded intervals of weeks and days, and any exceptions. You can either use static built-in instances such as the standard schedule (Mon-Fri 8h/day), or customize them by defining the week and day periods and by writing arbitrary code to return the excluded intervals (be them holidays or any other type of breaks.) You can then set up schedule objects for the visible time and for highlighting working or nonworking time in the diagram, and for indicating the allowed working time of all (or each one of the) items.

    You can then fully configure the chart's headers (even changing their entire collection dynamically, based on the actual zoom level), with one or more rows presenting the appropriate intervals and separators. From milliseconds to millennia, you are free to select any interval type that you wish for each of the header rows (optionally with period and phase), and you can customize their label text formatting by selecting one of the many built-in formatters (optionally with a custom locale too), including numeric styles that are often needed, or you can define your very own.

  • Settings, settings, settings

    With Ganttis components, you'll find settings that control virtually everything in the diagrams: from hourWidth and rowHeight properties to granular read only toggles and specific behavioral options (including an easy to set up auto-scheduling mode), applying to all or to individual item bars and dependency lines, and to the string values that allow you to fully localize the component according to your target market.

  • Styles, themes, and the dark mode

    We know it, you know it: regardless of its excellent features, it is extremely important that people find an app visually attractive too. We've put a lot of effort in providing the best possible built-in appearance themes for Ganttis components, supporting both light and dark modes on both macOS and iOS platforms, and all style values can also be manually reconfigured through code if necessary. And developers can even create full custom themes that optionally support both modes too (starting from the built-in one or from generic styles), whenever needed.

  • And eventually, export the diagrams as well

    Last but not least, anything that is presented with a Gantt chart component running on macOS can be exported by writing minimal code to a PNG formatted image file that end users can eventually share with other members of their team or save or print for reference purposes. And of course, you can also write code to export the data represented by the items and dependencies in the chart in a custom format as well.

Ganttis resources

Need more info? Take a look here.

Download from our Web site

You can download the .xcframework package directly from our Web site:
for macOS and iOS.

Detailed technical documentation is available here.

More insight

XCFrameworks represent the way Apple envisioned for distributing binary frameworks for any of their supported platforms. By providing a single .xcframework package including both macOS and iOS modules (Ganttis and GanttisTouch, respectively), we enable you to simply add it to your project and Xcode will be able to properly load and embed only the actually required binaries when your app is built based on your target's platform.

Add Ganttis framework and set up a diagram view

Start by adding Ganttis.framework (if you develop a macOS app) or GanttisTouch.framework (in an iOS project) to the Embedded Binaries of your target. Add a simple NSView (macOS) or UIView (iOS) wherever you need a Gantt chart diagram. Set its Custom Class to GanttChart from module Ganttis or GanttisTouch, respectively, and define an @IBOutlet for it if you use a storyboard or xib.

Initialize items and configure controller objects

Extended sample source code for both macOS and iOS is available on GitHub.

let items = [GanttChartItem(…), GanttChartItem(…), …] ganttChart.controller = GanttChartController(
    headerController: GanttChartHeaderController(),
    contentController: GanttChartContentController(items: items))

macOS demo

We've prepared a demo app that shows most of the component's features. Run it to see it in action. It allows the end user to select between a "standard" project and a virtualized data source with a very large number of items (generated on the fly, but they could be queried for and extracted from a data source instead), update them with drag and drop operations or by changing their properties and creating or deleting elements inline, setting up schedule definitions, diagram headers, miscellaneous settings and appearance directly from within the app. The app's source code is available on GitHub.

iOS demo

We've also created a small iOS app to show you how the Gantt chart component works on a smaller, touch-enabled screen. Its source code is also available on GitHub — feel free to clone the repo, build GanttisTouchDemo target included, and run the app on your own device!

Developer manual

We are developers too and we know how frustrating it is when documentation is limited and you don't know how to achieve something with your tool. For Ganttis we've therefore prepared a very detailed developer manual to help you get started and also to continuously guide you during development. The document contains more than 50 pages of information and should help you easily set up items and dependencies, configure change handlers, set up themes and so on.

Sample apps

You can also learn by example, following the source code of our sample apps, prepared for different scenarios and most of them targeting both macOS and iOS platforms, all being available in a living GitHub repo.

Obtaining a license

Our software comes with a full-featured and unlimited trial period, so feel free to test it thoroughly and ensure it fits your app's requirements perfectly before you purchase a license. However, for production purposes, you will need to purchase a Ganttis product license from DlhSoft. We have multiple license types, including upgrades and 70% off renewals — you'll surely find the one that fits.

Applying the license code

Upon purchasing a product license you'll receive a unique string code in an e-mail message. You'd then just need to apply it into your app's initialization section to get rid of all DlhSoft license warning screens that Ganttis components would otherwise show periodically:

Ganttis[Touch].license = "…"

Get support

As already stated, our support is free and unlimited. To everyone, forever. Before and after obtaining a license. Whenever you have a question regarding our components and you can't find the answer yourself (try searching the documentation first), don't hesitate to contact us. While (for traceability reasons on our side) it's always better to use the Web form linked above, you can also write an email to us at We'll try to reply faster than you have ever imagined.

Custom software development

If you think we can also help you with more than just technical support for using the components themselves, such as if you'd like us to develop specific code to integrate our components directly into your higher level apps and infrastructure, don't hesitate to ask either. We will analyze your project's requirements thoroughly, and provide a free quote, no strings attached!

Get your license

You'd only need to add one line of code to apply it.



  • Binaries only
  • 1 developer
  • Unlimted support
  • 1 year of free updates
Small Team


  • Binaries only
  • 3 developers
  • Unlimited priority support
  • 1 year of free updates


  • Binaries only
  • Unlimited developers
  • Unlimited priority support
  • 1 year of free updates
Business Plus


  • Source code included
  • Unlimited developers
  • Unlimited priority support
  • 1 year of free updates

People recommend DlhSoft Gantt Charts

Our software is feedback driven: we turn requests into new features

… and our partners change the world. Here are just a few of them, followed by some testimonials: