[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6940":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":16,"starSnapshotCount":16,"syncStatus":18,"lastSyncTime":31,"discoverSource":32},6940,"Whisper","hyperoslo\u002FWhisper","hyperoslo",":mega: Whisper is a component that will make the task of display messages and in-app notifications simple. It has three different views inside","",null,"Swift",3725,361,72,3,0,1,2,29.68,"Other",false,"master",[24,25,26,27],"ios","message","notifications","swift","2026-06-12 02:01:32","![Whisper](https:\u002F\u002Fgithub.com\u002Fhyperoslo\u002FWhisper\u002Fblob\u002Fmaster\u002FResources\u002Fwhisper-cover.png)\n\n![CircleCI](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fhyperoslo\u002FWhisper.png)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fl\u002FWhisper.svg?style=flat)](http:\u002F\u002Fcocoadocs.org\u002Fdocsets\u002FWhisper)\n[![Platform](https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fp\u002FWhisper.svg?style=flat)](http:\u002F\u002Fcocoadocs.org\u002Fdocsets\u002FWhisper)\n\n## Description :leaves:\n\nBreak the silence of your UI, whispering, shouting or whistling at it. **Whisper** is a component that will make the task of displaying messages and in-app notifications simple. It has three different views inside.\n\n#### Whispers\n\n![Whisper](https:\u002F\u002Fgithub.com\u002Fhyperoslo\u002FWhisper\u002Fblob\u002Fmaster\u002FResources\u002Fpermanent-whisper.png)\n\nDisplay a short message at the bottom of the navigation bar—this can be anything, from a \"Great Job!\" to an error message. It can have images or even a loader.\n\n#### Shouts\n\n![In-App](https:\u002F\u002Fgithub.com\u002Fhyperoslo\u002FWhisper\u002Fblob\u002Fmaster\u002FResources\u002Fin-app-notification.png)\n\nLet users know that something happened inside the app with this beautiful customizable in-app notification.\n\n#### Whistles\n\n![Whistle](https:\u002F\u002Fgithub.com\u002Fhyperoslo\u002FWhisper\u002Fblob\u002Fmaster\u002FResources\u002Fwhistle-information.png)\n\nThis is the smallest of all, a beautiful discretion in your UI.\n\n##### Bonus\n\nAll sounds are fully customizable, as are colors and fonts.\n\nShouts have an optional action that will be called if the user taps on it, and you'll even get a message when the Shout is gone. Finally, if you want to set how long the Shout should be displayed, you have a duration property.\n\nIn Whisper, there is no need to think about scroll view insets anymore—this will be handled automatically. As an added bonus, when transitioning from one view controller to another, the next controller's offset will be adjusted as you'd expect. It just works!\n\n## Usage\n\nThe usage of the component is so simple, you just create a message in the case of Whisper, an announcement in the case of a Shout, or a Murmur in the case of a Whistle. Because there may be a conflict with `show` from `UIViewController`, you need to explicitly use the `Whisper` namespace to call `show`.\n\n##### For a Whisper:\n\n```swift\nlet message = Message(title: \"Enter your message here.\", backgroundColor: .red)\n\n\u002F\u002F Show and hide a message after delay\nWhisper.show(whisper: message, to: navigationController, action: .show)\n\n\u002F\u002F Present a permanent message\nWhisper.show(whisper: message, to: navigationController, action: .present)\n\n\u002F\u002F Hide a message\nWhisper.hide(whisperFrom: navigationController)\n```\n\n##### For a Shout:\n\n```swift\nlet announcement = Announcement(title: \"Your title\", subtitle: \"Your subtitle\", image: UIImage(named: \"avatar\"))\nWhisper.show(shout: announcement, to: navigationController, completion: {\n  print(\"The shout was silent.\")\n})\n```\n\n##### For a Whistle:\n\n```swift\nlet murmur = Murmur(title: \"This is a small whistle...\")\n\n\u002F\u002F Show and hide a message after delay\nWhisper.show(whistle: murmur, action: .show(0.5))\n\n\u002F\u002F Present a permanent status bar message\nWhisper.show(whistle: murmur, action: .present)\n\n\u002F\u002F Hide a message\nWhisper.hide(whistleAfter: 3)\n```\n\nIf you want to use **Whisper** with Objective-C, you can find information about it [here](https:\u002F\u002Fgithub.com\u002Fhyperoslo\u002FWhisper\u002Fwiki\u002FUsing-Whisper-in-Objective-C).\n\n## Installation\n\n**Whisper** is available through [CocoaPods](http:\u002F\u002Fcocoapods.org). To install\nit, simply add the following line to your Podfile:\n\n```ruby\npod 'Whisper'\n```\n\n**Whisper** is also available through [Carthage](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage). To install just write into your Cartfile:\n\n```ruby\ngithub \"hyperoslo\u002FWhisper\"\n```\n\n## Roadmap\n\nIn the future the idea is to keep improving and add some features:\n\n- Improve the offset detection and animation.\n- Add more UI related components into Whisper.\n- More customization points and more sizes for each whisper.\n- Custom actions inside Whispers and Shouts.\n- We are open to new and awesome ideas, contribute if you like! :)\n\n## Author\n\n[Hyper](http:\u002F\u002Fhyper.no) made this with ❤️\n\n## Contribute\n\nWe would love for you to contribute to **Whisper**, check the [CONTRIBUTING](https:\u002F\u002Fgithub.com\u002Fhyperoslo\u002FWhisper\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md) file for more info.\n\n## License\n\n**Whisper** is available under the MIT license. See the [LICENSE](https:\u002F\u002Fgithub.com\u002Fhyperoslo\u002FWhisper\u002Fblob\u002Fmaster\u002FLICENSE.md) file for more info.\n","Whisper 是一个用于简化iOS应用内消息和通知显示的Swift组件。它提供了三种不同样式的视图：Whispers（在导航栏底部显示简短消息，支持图片或加载器）、Shouts（美观可定制的应用内通知，支持用户点击响应）以及Whistles（最小化的UI元素）。该组件支持自定义颜色、字体及声音，并能自动处理滚动视图偏移问题，在界面切换时也表现良好。适用于需要增强用户体验、提供即时反馈或重要信息提示的各种iOS应用程序场景中。","2026-06-11 03:09:40","top_language"]