|
GriP
Users' and Developers' guide to GriP – Growl for iPhone.
IntroductionGriP (Growl for iPhone) is an unobstructive notification extension written for iPhone and iPod Touch. GriP vs. Traditional Notification MethodsThere are currently 2 methods to announce a piece of information to you on the iPhone – either to show an alert box (e.g. the 3.0 Push Notification), or just play a sound (e.g. receiving new emails) or vibration. However, alert box is a very rude way to notify something trivial, as an alert box will steal your focus and disrupt your work flow. On the other hand, playing a sound is too hideous, as there are many places you don't want to turn on sound, and iPod Touches don't have a vibration unit. GriP tries to strike a balance between being unobstructive while still being able to give out clear information. With GriP, messages are (by default) shown as small floating windows in a corner, which will automatically disappear if you ignore it. In this way, you can still continue your process without missing anything. However, you should not completely replace every alert box with GriP messages. Because GriP messages favor to be ignored by users, they should not be used for critical decision making (e.g. saving a file while quitting). Installing GriPYou should first Jailbreak your device. GriP cannot function without Jailbreaking. Please refer to http://thebigboss.org/guides/quickpwn-guide/ for how to Jailbreak and http://thebigboss.org/why-jailbreak-iphone/ for myths/concerns of Jailbreaking. You can install the latest stable version of GriP from the BigBoss repository (http://www.thebigboss.org/). Legitimate dpkg implementations like Cydia, apt-get and aptitude are recommended. (Not released yet) The beta versions can be found from this site's download page. You will obtain a .deb file, which can be installed on your device with the following steps:
Using GriPGriP messages are shown, by default, as a small rounded box in a corner like this: From left to right, the components of a GriP messages are:
Some messages allow user feedback by tapping on the icon/message. When you hold on it, the border of the GriP message thickens. If you don't really mean to tap on the message, just drag your finger outside until the border returns to normal. You can also use this technique to extend the lifetime of this GriP message before it disappears. After you have tapped the disclosure button “▼”, the message box will expand the some further detail will be shown: You can scroll the lower box for these further details. The background color can be different depending on the emergency of the GriP message. Configuring GriPYou can change GriP settings in Settings → GriP (the option is at the bottom).
Per-Priority SettingsThere are 5 levels of priority a message can have. The theme may choose to alter the output based on the priority. Most messages have a "normal" priority, so you should target that item in most cases.
The background color is only a recommended value for the theme. The theme may choose to ignore it. Per-App SettingsMore fine-grained settings for each application/extension. If a per-app setting conflicts with the global settings, the per-app setting takes priority. (In Growl, they are also known as tickets.)
System UsageOn initialization, GriP uses about 250 KiB of RAM. GriP uses negligible amount of CPU and no extra RAM when idle. GriP will only cause slow down when there are a dozen of messages on screen. Apple's UIKit framework themselves may take memory that we cannot control. So far we observed a steady gain of 3 KiB every GriP message appears. We will try to get lower level to reduce memory use. Know issues
Programming for GriPAppStore (SDK) developersWhile GriP requires Jailbreaking for maximal function, it can also be made SDK-compatible. Of course, it is up to Apple Inc. to decide whether GriP-supporting source codes are acceptable, but GriP uses only documented API so technically it should be allowed. There are two levels of GriP support you may use. The 1st level is simply add a GriP client, and on the 2nd level you may embed the display server as well. The GriP client can communicate with the external server and display GriP messages. If you embed the display server into your application also, then your application will manage the GriP messages. This ensures the GriP messages can be shown even if GriP is not installed. (But the official GriP server will take over yours if present). We recommend you just to include the GriP client, and not the server. To install,
sdk/
GriP/
common.h
Duplex/
Client.h
GPApplicationBridge.h
GPGetSmallAppIcon.h
GPRawThemeHelper.h
GPTheme.h
GPUIViewTheme.h
GriP.h
GriPServer.h
GrowlApplicationBridge.h
GrowlDefines.h
NSString-stringByEscapingXMLEntities.h
GriPView.xib
GrowlApplicationBridge.m
libGPDefaultTheme.a
libGriP.a
libGriPServer.a
NSString-stringByEscapingXMLEntities.m
We recommend you to check libGriP.a only, and leave the others excluded. If you include the GriP server, please modify your main.m to read #import <UIKit/UIKit.h>
#import <GriP/GriPServer.h> /// <--- new
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
GPStartGriPServer(); /// <--- new
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}If you want to define your own theme, uncheck libGPDefaultTheme.a and follow the instruction in #Theming. The class name you use must be GPDefaultTheme. Open toolchain developers or Developers for Jailbroken DevicesThe AppStore method is still applicable to these apps, but since the Apple censorship is nonexistent here, we have one more option. If GriP is a requirement for your app, you can directly link to libGriP.dylib, and use the GPApplicationBridge class included in libGriP. (If you want to use GrowlApplicationBridge, you still have to compile the .m file – it is not included in libGriP.) This reduces bloat in your code. APIsGriP implements all the documented API of Growl on http://growl.info/documentation/developer/implementing-growl.php?lang=cocoa. There are a few changes to GriP compared with the Growl API in the notifyWithTitle:... method:
"(WiFi)", "(VPN)", "(wallpaper)", "(airplane)", "(display)", "(sound)" If you are writing a Mobile Substrate extension, we strongly recommend you not to use the GrowlApplicationBridge class methods, as this may cause the structures of the same object be shared between extensions undesirably. Instead, you should explicitly create an instance of GPApplicationBridge and work on it. If you have already used GrowlApplicationBridge and want to turn back, you can create a global variable named GrowlApplicationBridge initialized as [[GPApplicationBridge alloc] init] and call [GrowlApplicationBridge release] at termination. Example#import <GriP/GriP.h>
...
// Initiate a new application bridge.
GPApplicationBridge* bridge = [[GPApplicationBridge alloc] init];
// register your app.
// (of course, both auto-registration and register with a delegate can be used instead.)
NSArray* supportedMessages = [NSArray arrayWithObject:@"Test Message"];
[bridge registerWithDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
@"Test App", GROWL_APP_NAME,
supportedMessages, GROWL_NOTIFICATIONS_ALL,
supportedMessages, GROWL_NOTIFICATIONS_DEFAULT,
nil]];
// You only need to call the above statements once in a lifetime.
// Make sure the "bridge" is globally accessible.
...
// Display a new message with title "Hello world!" and an icon of Safari,
// which will launch Google when tapped.
// Call this whenever you need to.
[bridge notifyWithTitle:@"Hello world!"
description:@"Fill in some detail here."
notificationName:@"Test Message"
iconData:@"com.apple.mobilesafari"
priority:0
isSticky:NO
clickContext:[NSURL URLWithString:@"http://www.google.com/"]];
...
// Always kill the bridge when the app terminates.
[bridge release];GuidelinesGrowl recommends you to use concise text, and in GriP it is the strongest utmost important guideline. Because the iPhone screen is extremely small, even a sentence of title would be too long. In GriP, the rule of thumb is to limit your title to three words (or 15 CJK characters). So instead of Downloaded http://www.example.com/softwares/iphone/2/themes/the_best_theme_v1.0.deb to /var/mobile/dpkg_collections/themes/the_best_theme_v1.0.deb of size 1,893,229 bytes in 16.492 seconds at an average speed of 112.106 kibibytes per seconds or even Downloaded the_best_theme_v1.0.deb (1.81 MiB) in 16 seconds please just say Download completed. All the details can be thrown into the description. And because the description is normally hidden, you can give as much detail as you want there. Of course, you should still make the description concise, no one wants to read a novel in a 160x60 box. Another thing is that, do not use GriP for important messages that require user feedback, because GriP messages can be easily ignored. A UIAlertView or UIActionSheet is more suitable in this case. You should not rely on the growlNotificationTimedOut: delegate method to do any responds. Currently, when GriP is suspended, the growlNotificationTimedOut: method may not be called. Known issues of the embedded serverTo play nice with the SDK restriction, there are a few features not found on the embedded server:
You may tweak GPPreferences.plist to suit your need. Extensions of SpringBoard using GriPThe GriP server is actually a Mobile Substrate extension of SpringBoard, therefore, if you are writing another Mobile Substrate extension that uses GriP, it must load after it. GriP has made this easy by putting itself very early in the queue (by naming itself %GriP.dylib). However, if you want to be sure your extension loads after GriP is fully loaded, you should write a 2-tier initilizer like this: #include <GriP/GPExtensions.h>
static void real_initializer () {
// do your actual initialization here
}
void proxy_initializer () {
GPStartWhenGriPIsReady(&real_initializer);
}and set _proxy_initializer as the initializer of the dylib. The GPStartWhenGriPIsReady function ensures its parameter will be call only after GriP is ready. You should not do this if your extension is not targeting SpringBoard. If the extension also hooks on multiple applications, always check if the host is SpringBoard before calling the function. ThemingCurrently GriP only supports ObjC themes, i.e. you must write code to create a theme. In the future WebKit themes may be supported. There are 2 kinds of ObjC themes you may use, (1) UIView themes and (2) raw themes. UIView themesUIView themes are theme engines that presents a GriP message by in a UIView. The default GriP theme is a UIView theme. Here we give a step-by-step example to create a simple UIView theme. All UIView themes should be a subclass of GPUIViewTheme, and each subclass can override these 4 methods: @required -(void)modifyView:(UIView*)inoutView asNew:(BOOL)asNew withMessage:(NSDictionary*)message; @optional +(void)updateViewForDisclosure:(UIView*)view_; +(void)activateView:(UIView*)view; +(void)deactivateView:(UIView*)view;
The core method that you should override is -modifyView:asNew:withMessage:. So let's start with @interface ExampleTheme : GPUIViewTheme {}
-(void)modifyView:(UIView*)inoutView asNew:(BOOL)asNew withMessage:(NSDictionary*)message;
@end
@implementation ExampleTheme
-(void)modifyView:(UIView*)inoutView asNew:(BOOL)asNew withMessage:(NSDictionary*)message {
[super modifyView:inoutView asNew:asNew withMessage:message];Make sure you call the superclass's method for forward compatibility. Now let's create a simple view like this, not messing with the description stuff:
The first step is extract all the necessary information. The message dictionary contains everything you need. The keys are specified in <GriP/common.h>. We only need the title, icon image and priority here, so: NSString* title = [message objectForKey:GRIP_TITLE]; NSObject* iconData = [message objectForKey:GRIP_ICON]; int priority = [[message objectForKey:GRIP_PRIORITY] integerValue]; wait, to draw an icon we should have a UIImage! For this, you can import <GriP/GPGetSmallAppIcon.h> and use the GPGetSmallAppIconFromObject() function. Also, how to determine the background color? One benefit of subclassing GPUIViewTheme is that the superclass has already got it for you. The protected instance variables bgColors and fgColors are two arrays telling you the background colors and corresponding best foreground color in each priority level: UIImage* icon = GPGetSmallAppIconFromObject(iconData); UIColor* bgColor = self->bgColors[priority+2]; /// note the +2 UIColor* textColor = self->fgColors[priority+2]; /// note the +2 now we are ready to construct the view. Before we continue we may want to reuse what's left by the previous user: UIButton* clickContext = nil;
UIImageView* iconView = nil;
UILabel* titleLabel = nil;
UIButton* closeButton = nil;
if (!asNew) {
NSArray* subviews = inoutView.subviews;
clickContext = [subviews objectAtIndex:0];
iconView = [subviews objectAtIndex:1];
titleLabel = [subviews objectAtIndex:2];
closeButton = [subviews objectAtIndex:3];
} else {what is this clickContext you ask? It is basically a UIButton that cover the whole view, and will intercept the “activate”, “deactivate” and “fire” events. You have to connect these buttons to the target [ExampleTheme class] and the corresponding actions, but for default behaviors there are 3 macros defined for you to abstract these out. inoutView.frame = CGRectMake(0,0,160,36); // let the size be 160x36.
clickContext = [[UIButton alloc] initWithFrame:CGRectMake(0,0,160,36)];
GPAssignUIControlAsClickContext(clickContext);
[inoutView addSubview:clickContext];
[clickContext release];
iconView = [[UIImageView alloc] initWithFrame:CGRectMake(0,3,29,29)];
[inoutView addSubview:iconView];
[iconView release];
titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(34,0,90,36)];
titleLabel.backgroundColor = [UIColor clearColor];
[inoutView addSubview:titleLabel];
[titleLabel release];
closeButton = [[UIButton alloc] initWithFrame:CGRectMake(124,0,36,36)];
[closeButton setTitle:@"X" forState:UIControlStateNormal];
GPAssignUIControlAsCloseButton(closeButton);
[inoutView addSubview:closeButton];
[closeButton release];
}We note that we have mandated the view's frame to be {(0,0), 160x36}. If you don't do so, the default frame will be {(0,0), 160x60}. After the view is constructed, we can configure it: iconView.image = icon; titleLabel.text = title; titleLabel.textColor = textColor; [closeButton setTitleColor:textColor forState:UIControlStateNormal]; inoutView.backgroundColor = bgColor; } @end So the coding is done. To deploy the theme, you will need to link to libGriP.dylib and compile into a Mach-O bundle: gcc «other-options» -lGriP -bundle -o ExampleTheme ExampleTheme.mand then put it into a GriP Theme bundle, which is just a folder. Such folder must have this directory structure: ExampleTheme.griptheme/ Info.plist ExampleTheme «other-stuff» where ExampleTheme is the file you've just compiled, and Info.plist is a property list with these content: {
CFBundleDisplayName = "Example Theme"; // readable name of the theme.
NSPrincipalClass = ExampleTheme; // class name of the theme engine.
GPThemeType = OBJC; // this is an ObjC theme
}when these are all already, you can copy these files to /Library/GriP/Themes/ on your device. Then when you launch Settings, you should be able to see your theme and test it. The result should be similar to this: Not bad. It is easy to make it look nicer and more efficient. You may read the source code of the default theme at http://code.google.com/p/networkpx/source/browse/trunk/hk.kennytm.grip/src/GPDefaultTheme.m to get a better understanding. Raw themesRaw themes are themes without help of GPUIViewTheme. It is the lowest possible form a theme can be. At this level, you can do pretty much anything you like, e.g. change the status bar or make the phone vibrate or even send your GriP message to twitter. It is comparable with the Growl display plugins. Let's try to construct a raw theme that displays GriP messages are UIAlertViews. A raw theme can be anything that adopts the GPTheme protocol: @protocol GPTheme -(id)initWithBundle:(NSBundle*)bundle; -(void)display:(NSDictionary*)message; @optional -(void)messageClosed:(NSString*)identifier; @end
A raw theme has to manage its communication with the GriP server when the user has confirmed or ignored a message. To ease these thing a bit, you may use a GPRawThemeHelper. So our theme can start with #import <UIKit/UIKit.h>
#import <GriP/GPTheme.h>
#import <GriP/GPRawThemeHelper.h>
@interface UIAlertViewTheme : NSObject<GPTheme,UIAlertViewDelegate> {
GPRawThemeHelper* helper;
}
-(id)initWithBundle:(NSBundle*)bundle;
-(void)display:(NSDictionary*)message;
-(void)alertView:(UIAlertView*)alert clickedButtonAtIndex:(NSInteger)index;
@endSince we don't have other resources the bundle is not very useful. So just treat it as a simple -init method: @implementation UIAlertViewTheme
-(id)initWithBundle:(NSBundle*)bundle {
if ((self = [super init]))
helper = [[GPRawThemeHelper alloc] init];
return self;
}
-(void)dealloc {
[helper release];
[super dealloc];
}Now for -display:, the message is a dictionary with the same structure we've discussed for a UIView theme. Hence, -(void)display:(NSDictionary*)message {
int helperUID = [helper registerMessage:message];
NSString* title = [message objectForKey:GRIP_TITLE];
NSString* detail = [message objectForKey:GRIP_DETAIL];
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:title
message:detail
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];
alertView.tag = helperUID;
[alertView show];
[alertView release];
}Here, the -[GPRawThemeHelper registerMessage:] extracts the necessary data from the message and stores it for later use. It returns a unique ID which we will need it later (so we store it as a tag of the UIAlertView). Then we proceed to display the alert view. We want to know if the user confirmed or canceled the alert view too, so we set self as a delegate. -(void)alertView:(UIAlertView*)alert clickedButtonAtIndex:(NSInteger)index {
if (index != 0)
[helper touchedMessageID:alert.tag];
else
[helper ignoredMessageID:alert.tag];
}
@endWhen the user actually clicked a button, we check if that's Cancel or OK, and send the appropriate data to the GriP server. The complexity is encapsulated in the -touchedMessage: and -ignoredMessage: calls. You just need to call them with the UID you received earlier, which is stored in the alert's tag before. The deployment procedure is same as UIView theme. Theming (Modal tables)Theming modal tables is much easier than GriP themes because you need to deal with much less options. The theme resources should be placed inside a folder in /Library/GriP/Themes/, with this structure: ExampleTheme.gpmtvtheme/ Theme.plist Background.png (optional) Selection.png (optional) Background.png is the background image of the whole modal table window. Selection.png is the image which should be used when the user selects a table cell. GriP identifies the following keys in Theme.plist: struct <GriP Modal Table Theme> ::
struct <Paddings> ::
union <Color> ::
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sign in to add a comment
Great idea! But it doesnt work on my 3.0 iPhone :/ There are no grip settings in settings.app. Any ideas?
@crash.ix:
hi it install on 3.0 beta 3 I even get the settings on it but every time I try to preview the growl in settings app it crashes to safe mode
what am I doing wrong
beta 2 now works great with iphone os beta 3 thanks and i just donated to you for your hard work. keep up the good work thanks.
p.s any news on getting ikeyex work on 3.0?
@a...:
thanks. cant wait till i have ikeyex working on 3.0 you are the man :)
sorry if im asking all the wrong questions but is there a way to get Calculator.searchBundle work on 3.0 and not just the simulator.
@a...:
this rocks...the concept...imagine the nightmare of push notifications with normal iphone notification system
iphone 2.2.1 16gb 3g - I love this. You've done a bang up job
will this support other stuff besides email, like sms, push notifications, calendar items, instant messages???
Just a suggestion: having possibility to have something poping up periodicaly (or sticky if we want), that makes a rundown of all the latest notifications, like android does
it would enhance this even more ;)
@antonioj:
@kennytm, i think so. There´s some videos around showing it. Palm Pre´s solution is also very elegant, something for inspiration on this project.
You know, one of the biggest letdowns of 3.0 was precisely the lack of a new notification system. You have the answer!
Regarding sms, i don´t see an sms module on settings, on Email and Memory, so you or other dev had to had it right?? Calendar, and reminders from popular to-do apps should also be cool (Todo, Things, etc). And rss. LOL...so much we need :)
Please release this quickly on Cydia Store, i and alot of people will quickly come to contribute for such AWESOME project. We need to get you a 3g iphone for testing ASAP :)
@kennytm, your app is being discussed here:
http://macthemes2.net/forum/viewtopic.php?id=16795455
feel free to jump in too
Great app!
I did this to my iPhone 3G 2.2 and when i restarted the iphone it started in safe mode and it wouldnt exit it even when i respring! Help. How can i fix this or undo the commands i entered.
Is it possible to send notifications from the command line like growlnotify on macs?
@xplosivetx:
@luke.ledet:
Is it high on memory usage?
Is there a cydia repo for the beta? I really want to try this but my computer isn't working. :(
new beta out, it seems
@kennytm, today, after waking up, i notice i had alot of Grip boxes, one for each time mail was pushed. I think we should have option to group messages together: 1) by mailbox 2) by app
So, i should have all gmail apps pushed during the night on one box, yahoo mails on other, etc. If i had an SMS extension, all should be on one box, all calendar items on one box, etc
Can this be done???
Ok, i was told the new beta adresses part of this problem...now messages are grouped together! Well done! Would like to have the option of group them by mailbox though...
Also (i´m dreaming), ability to quick delete and quickr reply would be awesome. Just quick delete would be great
if u wanna I can send u polish translation GriP. MSG me @ ile1t00@gmail.com
Somehow mail notification doesn't work in my iPhone, but the memory watcher does. Does any other app conflict with GriP? My guess is apps that are listed in MobileSubstrate? dylib. But I don't know which one. I have 20 app's MobileSubstrate? dylib in that folder. %GriP.dylib is already on the top of the list.
@antonioj:
@ile1t00:
@jijay.mci:
Great project and documentation -
I'm curious if anyone has push email accounts working? Both of my POP accounts work fine. If this is in thw works, is there any eta?
@kennytm: Yes I use push mail (MS Exchange Mail). Is that the problem?
why my Notification is coming in chinese?
@jainvinay04: Mine's too (memory watcher). I just realize it. It happened after I installed j version manually.
It's working now in my iPhone and push mail. Thanks for the update including the Youvegotmail dylib. Great job!!!
@jainvinay04 & @jijay.mci:
SMS is ideal. i'd really love it!!
@kennytm, do you have knowledge about anyone developing new extensions for GriP?
People would love to completely get rid of Rock Your Phone crap...GriP already replaces elert, but sms support is needed to replace Tler (and quickreply/quickdelete)
@kennytm:
@antonioj:
@mattswartz:
Hi
Is there a way to send a notification from a pc to the iphone running grip, like with Growl?
like http://www.sitecrafting.com/blog/php-growl/
there´s a new build out (k)
excellant idea! I really like this extention to my iPhone. Now if only we can get alot of the good apps to incorporate this into their work, then we'd be fresh!
I really loveeee GriP :-). If I may give small idea, Kenny could you make You'veGotMail alert shows 2 or 3 of the first lines of the mail body?
we need more extensions...please someone do something to support sms!
I agree that we could use an SMS extension and a more thorough mail alert box, though I assume those were functions you were planning to implement eventually.
@KennyTM: I really like the way that GriP is coming along, and hope we'll be seeing another beta of it soon. Thanks for your work on this, a system-wide notification system is just what our phones need to feel more like devices and less like cell phones.
no updates? :(
@kennytm, please check this out
http://macthemes2.net/forum/viewtopic.php?pid=480765#p480765
Is this project dead already?
I don't see any progress being made.
Is there any other similar project?
It´s not dead of course...it´s still in beta, not even finished.
Also, i think it´s not up to GriP´s dev to make new extension...he his already relasing tools for other people to make them...
@carloses.young:
If you check the changes you should see a commit made 29 hours ago. So the body is still warm :p.
Glad to rear that, kennytm!
I think that you should come up with a page where users can share information about GrIP. Also, this page is not really easy to follow when it comes to updates, because you just rewrite sections of the text, making it hard to figure out if something has changed.
We sure could use some "News" page, along with a "Users extensions" section.
There is a lot of people interested in this project. Lets bring some tools so the community can grow around it!
Thanks in advance!
Yet, the link posted by antonioj looks very promissing.
Why not recruit jozen5555, the author of the mockups, to join forces on an extension design?
Thanks again.
@carloses.young,
I've made a Yahoo! Pipes that contains updates only related to GriP:
http://pipes.yahoo.com/pipes/pipe.info?_id=_H3DbmRQ3hGlKLaFZMag4A
You can also find the changelog from the source code of this page at http://code.google.com/p/networkpx/source/browse/wiki/GriP.wiki
@kennytm I made a theme based on the mock ups from the MacThemes? site, but I'm getting some troubles when compiling it, would you please e-mail me at: me(at)epelaez(dot)com for some assistance?
@kennytm, i second PelaezBHZ request, because what he his working on will be an awesome GriP implementation. Please do help him.
@PelaezBHZ:
You could directly send your problem to me at kennytm-at-gmail.com.
loving the new version :)
What's new with the 'N' release?
I noticed that You've Got Mail changed, but don't get the new use of it. If you dismiss the mail notification you can still access the preview later?
@antonioj:
@carloses.young:
i keep getting doubles for all incoming mail. as in, i get 1 new email in, and GriP tells me i have 2. Then there are 2 dulicate entries on the modal table. Any ideas?
That´s weird...i have no problems...
kenytm...i wonder if someone can write an extension that would hook into the general push notifications process, and completely replace the normal notification system, for all apps that use it
kenytm, i suppose you will update to 3.0? can you have a look into the push notifications server stuff?
@antonioj:
Hope its soon then ;)
hi, i installed this today and have since stopped receiving emails unless i manually check, i have uninstalled grip via cydia and stil no avail, any ideas? is there something else i need to delete?
Kennytm, AIM, Beejive, are out supporting Push Notifications. Now people will see even more how flawed the iphone notification system is - GriP to the rescue ;)
Nice. I was wondering why all versions of GriP were set to depreciated, but it's because you were just uploading a new version! Glad to see development is moving steady ahead :]
GriP (latest revision) working with beejive PN
http://yfrog.com/08n2jj
http://yfrog.com/18vlej beejive + HeiWAY
http://yfrog.com/0kxusj Message Log - > Kenny, PLEASE, it is so AWESOME - make it accessible externaly, via SBSettings toggle, or like a normal app. It´s message history, really usefull
Finally...if someone could help you make the Calendar and SMS extensions...it would be good for the first stable release...don´t you think? It would be almost complete
Grip 1-11n works very nicely on 3.0. Beejive push works perfectly, even opens on the lock screen. Great work!
Request: Custom Sounds for Alerts
Another note: My phone crashes when a GriP is open while someone is calling me. The springboard goes into safe mode, but the call still goes through. Anyone else with this issue?
@blessone0:
About the crash, please file an issue, and attach the crash log at /var/mobile/Library/Logs/CrashReporter?/LatestCrash?-SpringBoard?.plist if you can fetch it.
@kennytm,
Is it possible to agregate all messages from something like Beejive Push notifications in a single box, like mail does? Because imagine some MSN contact is talking to you - everytime he writes something, a new grip box appears...for IM that is not very elegant. For other Push apps, i think its not a problem (like AP news, HeyWAY)
@kennytm, Is it possible to use Fake Push Notification in hacktivated iPhone 2G? You probably knew that hacktivated iPhone 2G can't receive Push Notification (for now we hope). I know it's silly question. Still... I have to ask. :-)
Hey guys,
Anyone else having problems with the home button after installing Grip 0.1-11n on OS 3.0?
Mine is failing to close apps. I'm pretty sure that this is not a hardware issue, since I can still dismiss the SBSettings window with it.
The problem started right after I installed Grip 0.1-11n (not upgrading, brand new Grip installation on OS 3.0)
Used to have early versions of grip on OS 2.2, and never had similar problem.
Should I issue a bug on the tracker?
Thanks!
Happens to me too. Home button does not work when there are push boxes on foreground. I think keenytm knows about this?
@antonioj,
I've just found that there is already a bug filled for this issue (issue 129). Also, kennytm have marked it as resolved already (r348).
Now I think that we're supposed to wait until kennytm releases a new Grip package. Am I right?
Thanks!
Yep. He should be releasing a new revision soon, even if it´s still the same beta version.
@ carloses.young,
Yes. I have that same problem. I didn't know it was GriP that was causing that problem. It is pretty annoying when you try and close an app, and it leaves you hanging before the app simply crashes upon close.
A fix for this is a must. Same with the springboard crashing when GriP pops up during a phone call.
Funny. Lately i cant see text inside beejive push boxes. But on IM+ it works fine.
Got this working, so far only 1 email notice has appeared, 3G on 3.0, JB/UL
Had to get into Superuser mode on Terminal to enable (You might want to add that and about alpine pw in instructions so others can avoid errors)
Thanks !!
dhlizard, no need for that if your SSHing from the PC/MAC using stuff like WInscp...you make it sound more difficult than it really is :)
My phone goes into safe mode every time I use the button in SBSettings to respring. Respringing from the terminal works normally every time, but SBSettings goes into safe mode every time. Removing grip fixes it, reinstalling grip causes it to happen again.
I noticed someone had the same problem in April. Is there a fix?
doubt that has anything to do with grip...none of my friends that use it, and myself, have that problem
It has never done that until installing grip. Uninstalling grip fixes it, reinstalling grip causes it to start doing it again. There may be something in my particular setup, but grip seems the logical culprit that is triggering it.
I still have a problem with the home button after a push notification. Even with the new Grip (01-11o)
Edit: I did some more testing and found:
-The home button works if I dimiss the notification and not if I "touch" the message and launch beejive.
-The second or third push notification crash SpringBoard?.
I also noticed that when i have alot of notifications on screen, some just slide to left and dissapear
Besides that, messages blink at lockscreen, when i bring the phone on from idle mode
I also experienced Springboard crash in same situation has Mike
Exactly the same problem as Mike too - Springboard crashing on more than one push notification.... :(
Any of you guys experienced messages blinking on lockscreen after waking up the phone?
To report bugs more extensively use this
http://code.google.com/p/networkpx/issues/list
Search before posting new issue
To all of those experiencing crashes: Please check issue 129.
Also, during the notification is shown there's no sane way to make the home button work. It'll be fine after it's closed.
Can you make the file available again on downloads?
Also, please check this
http://gizmodo.com/5308874/prowl-pushes-growl-notifications-to-your-iphone
this should be awesome combined with grip
The files are still there, just deprecated. You can see them by viewing all downloads or deprecated ones.
Grip crashes phone into safe mode since I updated mobile substrate in Cydia this morning. Every time I would get a new email it would crash. Turned Grip off and no more crashing.
does not crach with new dlib :)
Loving grip! Is there a way to make a notification stay onscreen for a longer duration?
@timmetz in GriP preferences, for each priority, you can choose how long the alert stays on the screen. :)
grip crashes every 3 notifications... the new library doesn't work - no notifications with it. (I use IM+ 3.2)
The new .dylib fixed all my issues.
Cheers, KennyTM.
Cool new theme for GriP
http://macthemes2.net/forum/viewtopic.php?id=16797479
KennyTM, please check the issues i posted regarding Double Bar theme
http://code.google.com/p/iphone-quickreply/issues/list?thanks=6&ts=1248107579
Maybe some problems are not theme specific...
xshad0w is trying to contact you, check your mail
KennyTM, may i suggest you to put GriP beta on the new BigBoss? repo for beta/alpha builds?
I have a pretty serious problem. I go the settings but no settings are applied. Like i put bottom right, and it stays in top right, change color, stays the same etc... Running iphone 3g os 3.0 att in u.s.a hacked with redsn0w
hi, this is a great idea, and i love the concept, so hare is my feedback: (3GS OS3.0 - ATT - JB with Purplera1n) Grip is working ok but i cant change any setting(Like i put bottom right -> stays in top right, etc...), it is locked to the original settings. Keep the good work, this definitively wroth something.
Major issue with the "q" release here, it crashes the mail app and puts the mail notification in a continuous loop. Re-installed the "p" release and works just fine again.
Is there somewhere we can see the changelog for the updates you are putting on Google code? Also, is there any way to access the modal tables from outside of Settings? I know that You've Got Mail does it, but I want to find a way to incorporate the Message Log into SBSettings. Like if I could add it to the dock or find a way to execute it from a SBSettings toggle to quickly check message history.
@Willis.Gomez: Check that /Library/GriP and /Library/GriP/GPPreferences.plist are world-writable.
@jklurfeld: Please submit an issue, and attach the crash log if possible.
@IamTheFij?: You can check my blog for changelog.
@Kennytm
The issue was fixed in "r." I had an exchange account so it mustve been the 242 error that was fixed.
Also still having a similar issue as Willis.Gomez. GRIP isnt installing with those 2 you mentioned as world-writable. Couldnt change the theme (wouldnt stick) until I went in and changed the properties of both to world-writable. Now works ok.
Issue 172 is not fixed for me. Messages from the same app still always form next boxes and aren't combined. This occurs with all apps including BeeJiveIM and Prowl.
I completely removed GRiP and installed 'r' and the issue persists. Is something sticking or preventing this from working? Does something need to be enabled or is the combining default behavior.
Suggestions are welcomed.
@cnachmias: Respring...??
@kennytm: Resprung, power cycle, the works. I've upgraded from 'p', no luck. Then completely removed GRiP and then cleanly installed 'r' with no luck either.
Are any files kept even if removing GRiP? I kind of want to completely remove the applications directory and then reinstall again. Where does it install to?
hey kennytm. Thanks for the great app, but I'm having an issue.
When I had grip version "0.1-11p" along with the SMSnotification extension everything seemed to work perfectly. I was able to get SMS notifications without a problem.
ever since you implemented the SMSnotification in version "0.1-11q" and above, I'm not receiving any sms notifications. the default SMS popup shows. so I decided to downgrade back to version "p" with the SMSnotification extension and it started to work again. Is it something I'm doing wrong or is there a problem with the package?
i have a 3GS 3.0, and basically i have major issues with GriP :( first of all, the 0.1-11r doesn't work at all, no way around that. 0.1-11q won't let me change the settings (a lot of people have that i think) and so i'm using 0.1-11p ... unfortunately it seems to have gone totally mad on me: -at first it simply wouldn't work (same issue as with "q" = no settings change) but after a few reboots (litteral reboots home+off switch) it decided to work. -but from then on, my yahoo mail account refuses to push mails (unless i go in manually and have it check for mail) as well as my two other accounts with fetch - a few switching stuff off then on (mobile substrate) and rebooting later my fetch mail was back to normal ... but push seems to refuse to come back from the dead. -during this time at least i was getting the mail grip-ups (grip pop-ups) but no others -a few days later, outta nowhere the mail grip-ups stopped working but the push notification (beejive, IM+ ... but still no yahoo mail push) have begun working. Is there anything that i might do to get it all to work, or something i might be doing that is making it go haywire (i already got rid of iTypefastR= skype issues, and have heard that pop-up blocker might clash with GriP ... yet push notif. grip-ups work) i'm kinda at a loss; but believe in the high potential of this app ! thanks for even releasing this pre-beta work-print :) keep up the good work
After many failed attempts at getting r. to work at all, and q. tu work correctly i used a Terminal command that i saw on another thread: find / -iname GriP -exec rm {} + which supposedly found and deletes any files with the word GriP in it. I thought it would give me a fresh start to re-install Grip 0.1-11q ... well basically it did, now GriP is fully functional and all, but every time i use cydia to install or remove programs i get a small warning: -dpkg: serious warning: files list for package "hk.kennytm.gripgrip" missing. assuming package has no files currently installed. Sould i be concerned, or does anyone know how to fix this ? help would be nice ...
@alexna...: apt-get remove hk.kennytm.gripgrip, maybe?
need help....
Installed from cydia. iphone 3.0 (jailbroken). I see it in the mobilesubstrate (enabled)... cannot see it in setting (or in supreme preferences)... what am I doing wrong?
hum ... said a bunch of blabla, then suggested trying with autoremove (instead of just remove): explaining that 1 unnecessary file would be removed. used auto-remove and now it says: use auto-remove to remove 3 unnecessary files, but just keeps saying this message even after using auto-remove again & again. i might just stick to the warning message (that is still there BTW)
when I installed the beta deb, I don't need the mobilesubstrate but the preferenceloader, which is in cydia
Gesture support?
Would it be possible to implement alternative methods for acknowledging/dismissing notifications? Perhaps an approach akin to a cross between the iPhone's delete "swipe then tap" and the Palm Pre's flick up to close apps.
I envisioned allowing users to flick/push notifications, read or unread, off the screen, much like the motion currently employed to activate the delete button in many apps but removing the need to tap a delete button after, the notification would simply slide off the screen.
Also, this gesture control could also be used to open/acknowledge notifications. A user would simply slide down on a notification to open it, after which it could be pushed off the screen to the left of right (which ever is nearer).
Thoughts?
This came to me because I am always missing the "X" dismiss key and opening notifications by accident; this often results in me being redirected away from my current app and a general sense of dissatisfaction arising!
Good ideas in there!
Kenny, any info about upcoming update?
Love the app. First, i want to second the gesture support idea. X's are great, but sometimes i miss it and would love to just swipe it away. Second, I would like to see an option to make the entire message box, when expanded, clickable to open the app or quick reply when/if that comes out. Great work, and keep it up. Thanks
@hpridham
That would be really cool if this was implemented! My big fingers always miss those X's. Haha
KennyTM, no news about GriP? I hope you don´t let this project down :( It´s so important for the iphone scene...
Hello. I have a 3Gs using the .r version of GriP. I am using the default settings for the application. I have two email accounts. One is a POP3 account and the other is my company's Exchange Mail account.
Grip properly displays the POP3 emails, but delivers two of each Exchange email I receive.
On the iPhone itself I am receiving the emails properly. That is, I am not getting double emails on the Exchange account.
What am I doing wrong?
First of great work on the grip project. It is approximately 100x better than pop up notifications. It would be nice however if the X can be made bigger either by the user or by default, that would make it more usable as like others I am missing the x to close and I don't have large fingers. Also if I were to add a wishlist item it would be something similar to the window shade that Android has( yes I was a android g1 user for a while), similar to sbs settings where we can swipe and pull down a list of recent notifications for quick access instead of going into Settings->Grip->Show Log. Again just food for thought. Great work guys I for one really appreciate it.
jacob, are you maybe seeing the pop3 email in both You've got mail app that's part of Grip and the mail.app? You could disable you've got mail in Grip settings if it gets annoying.
Im using iphone 3gs 3.01. When activating mail notification, I get my name instead of the account name, ex: 1 new mail (MY_NAME). Anyone else has this problem?
Guys, look at the way facebook 3.0 uses notifications - i think KennyTM can put Double Height theme and the modal table working like that
Thanks Todd. But no, the POP3 mail is showing up only in the POP3 mail area. In the Exchange mail, I am now getting at least two and sometimes more duplicates of the Exchange emails. In other words, the POP3 email is working perfectly, but I'm getting lots of duplicates on the Exchange mail.
Can GRiP be turned off for some push apps and not others? I like using GRiP for all my regular apps but I have started using Prowl to allow my home PC to send push notifications to my phone and would like to have the normal iphone push popup box for that.
no updates :/
Anyone working on an alternative to pressing the 'X' to dismiss notifications?
Sad to see no updates on this, or any indication that it's even being worked on anymore.
@KennyTM any news for us?
@jdmas0
I agree the settings for "per app" to enable/disable GRIP seem to be empty now. I want certain apps like IM to show the stock popup box with the message, not the GRIP notification in the corner.
@Jacob
Seeing the same behavior and its Exchange only (doubles and triples). Gmail works perfectly. Must be a bug
Man, it really sucks KennyTM is focusing so much in the other projects and forgot about GriP :(
@antonioj It sucks hard! Really wish he would find the love again for this project as it certainly seems like he lost interest completely :(
@kennytm I know I asked before but...
Is there any way to access the modal tables from outside of Settings? I know that You've Got Mail does it, but I want to find a way to incorporate the Message Log into SBSettings. Like if I could add it to the dock or find a way to execute it from a SBSettings toggle to quickly check message history.
Crashing on 3.1 if you enable push notifications. Just an FYI.
IamTheFij?, that would be awesome.
KennyTM, please see this
http://www.larvalabs.com/product_pages/intelligent_home_screen.html
Having the same problem with Exchange emails. I'm seeing double and triple of the same email each time in 'You've Got Mail'. Can someone help please?
@Chillin123 i'm having the same problem too, I think you should post it in the issues section
My main desire right now is having the Double Heigh Statusbar fully working, and external acess to GriP´s message log
@antonioj We can dream! Two months since an update on this, seems kenny is very busy on other projects :(
Iphone 3g firmware 3.0 : version grip :0.1-11r I can't change notification location : always top right
For anyone coming here about external app access to the Message Log... I have tried to do a little exploring of the GriP application folders and found out where the message log is saved. I also tried to decode it a bit and figure out it's formatting. I'm sure KennyTM could easily publish the full description but I have been unable to find it so I tried to build it on my own.
http://forums.macrumors.com/showpost.php?p=8519885&postcount=152
I'm thinking it could be used to create a plugin for LockInfo? as well as used for a SBSettings plugin. It would be great if KennyTM could make the later job easier by creating an external way to hook into the Message Log.
KennyTM,
Here's an idea. Since you are clearly not interested in developing Grip anymore, why don't you turn it's code into something like CC, GPL, BSD, etc.
The community is anger for a software like Grip, and I'm sure that there would be a lot of contribution and development on the project if people could access the source and submit changes.
As a matter of fact, I think that Grip would be a much more reliable and functional tool if it has accepted contributions since the beginning.
Even if you are still interested in the project, opening it for contributor wouldn't hurt, would it?
Thanks.
Pleasee back to this KennyTM :(
carloses.young
The source is available from this page.
I'm pretty sure all public Google Code projects are opensource if it's hosted here. I think you can download and fork it on your own if you want.
KennyTM, please say something. Your silence is unexplainable.
Best app i use, you should update it to make it work on 3.1
Same Problem here: i´m get my iphone mails from my google push account. Grip shows me allways that i have 2 mails, even if it is only one ! Very frustrating !
But this is the best ever made project on the iphone :)
Is there anyway to add support to flash the screen when you get a notification?
Put a post about GRiP on my blog here: http://jordandev.info/?p=98
Hi, ive used the Toggle.dylib of VideoToggle? for Sbsettings to execute bash commands. (because i cant write my own toggle for sbsettings) I rewrite the video_on and video_off to execute "GriP -m" and renamed the directory of VideoToggle? to "Grip Log". Now, i have a Sbsettings Button called "Grip Log" and if i touch it, the Grip Log open up. To run "GriP -m" the GriP command line utility must be enabled, but i cant explain how i get the entry: "Settings->GriP->per-app settings->grip command line utility" to get this mode enabled.
Screenshot:
Trinitus
To enable the command line settings just run GriP -m in terminal. After that activate it in Settings/GriP/Per-App Settings/
The modded GriP Message Log Sbsettings toggle files can be found on:
http://code.google.com/p/networkpx/issues/detail?id=175#makechanges
Trinitus
KennyTM is back http://code.google.com/p/networkpx/source/browse/wiki/iNotifyEx_design_notes.wiki?spec=svn522&r=522
I know there is a replacement/upgrade coming out soon for GRiP, but the documentation is in serious need of updating, notably the features included with the base release in Cydia.
I have iPhone 3GS 3.0.1 jailbreaked and officially locked, after i had installed Grip from cydia it worked nice with all my push notifications after 6 hours from installation all applications that have Push Notification when i run them a message appears to be telling me Connect to iTunes to use Push Notifications "CNN" Notifications may include alerts, sounds and icon badges "CNN refers to the application name"
http://yfrog.com/2pimg0038ip
I removed Grip and still the problem exist, Please Help meeee I can't live without notifications
that has nothing to with grip...restore your phone, and jb again
@fspilotcale, the release in Cydia was not sanctioned by the developer, it´s not official, so...
When I receive a mail from my google push account, the mail always displayd twice in Grip. After a reinstall of Grip, the problem was solved for some hours, but not permanent.
Is there any solution or bug-fix for this problem?
This software works great, but the doubled emails in Exchange is a nuisance.
I was getting double, now getting triple Exchange emails. That said, this app is awesome and I don't think I can use an iPhone without it now.
This got rid of my duplicates:
I am running grip with exchange email.
Since grip has notifications for both push items and 'you've got mail' items Grip thinks it needs to send both (Push and "you've got mail").
I fixed the duplicate emails by disabling the 2 following settings(IN GRIP SETTINGS): (1) --> Grip Push Notiifications - Enable = OFF (2) --> Grip Push Notiifications --> Push Notification Alert - Enable = OFF
Since i already have email pushed to my phone the "you've got mail" sends my notifications.
I hope this helps..