My favorites | Sign in
Project Logo
                
Search
for
Updated Jun 22, 2009 by kennytm
Labels: Phase-Implementation, Phase-Support
GriP  
Users' and Developers' guide to GriP – Growl for iPhone.

Introduction

GriP (Growl for iPhone) is an unobstructive notification extension written for iPhone and iPod Touch.

GriP vs. Traditional Notification Methods

There 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 GriP

You 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:

  1. Create an SSH session to your device and login as root. You can follow this page for instruction: http://cydia.saurik.com/openssh.html
  2. Upload the .deb file to /var/root/.
  3. Start a command prompt. In there, type cd ~ ; dpkg -i «filename.deb», where you have to replace «filename.deb» with the file name of the uploaded file (without the guillemets).
    • If it prompts Mobile Substrate is not installed, make sure you have installed it. You can install it with the command apt-get install mobilesubstrate.
  4. Respring your device. If you don't what is respring, simply type killall SpringBoard.

Using GriP

GriP 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 GriP

You can change GriP settings in Settings → GriP (the option is at the bottom).

Preview Clicking this button will display one GriP message based on your current settings. Another GriP message will also show after you have ignored or tapped on this message.
Location On which corner should the GriP message appear.
Theme Which theme to use.
Game mode You can mark some apps as Games. When these apps are active, GriP will be suspended except for important messages. When you close the app the suppressed normal messages will all be delivered at once. This mode is introduced to reduce distractions when playing games or watching movies.

Per-Priority Settings

There 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.

Enabled Whether to show messages with the selected priority. By default, messages with very low priority will are hidden.
Sticky While most GriP message will automatically dismiss, some will choose to “stick” on screen until you explicitly close it, or tap on it. These are known as sticky messages. You can override the application decision in this setting.
Duration How long should a GriP message live before it auto-close. The range is between 0 to 10 seconds.
Background color The background color of a message. From top to bottom each slider represent the red, green, blue channel, and the opacity (alpha channel).
Suspension behavior What to do for the messages when GriP is suspended. There are two cases where GriP can be suspended: either in Game mode or the Screen is turned off. There are 4 options for each setting:
  1. Drop: Just ignore all messages when suspended.
  2. Keep last only: Only keep the last message, and ignore all previous ones.
  3. Queue: Put the message on a queue and deliver all of them when GriP is resumed.
  4. Deliver immediately: Pretend GriP is not suspended and immediately show the message.

The background color is only a recommended value for the theme. The theme may choose to ignore it.

Per-App Settings

More 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.)

Enabled Turn OFF to disable this app from showing any GriP messages. (This overrides the per-message settings).
Stealth Fake to the app that GriP is not disabled for it although it is the other way round. This setting will only appear when you turn OFF the app.
Sticky Like the per-priority one, but for apps.
Messages List of messages that this app will display. The link provides even more fine-grained per-message settings. Like the higher level, per-message settings trumps per-app settings, except “enabled”.



The per-message settings you can override are: “Enabled”, “Stealth”, “Sticky” and “Priority”.
Remove Settings Click on this button to remove the settings of this app from GriP. This is equivalent to restoring to the factory settings for that app.

System Usage

On 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 GriP

AppStore (SDK) developers

While 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,

  1. Download http://code.google.com/p/networkpx/downloads/detail?name=GriP-for-SDK-developers.tar.bz2 from this site.
  2. Extract the bz2 file anywhere. You should see this directory structure:
  3. 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
  4. Copy the content of the sdk folder into your project, like this:
  5. There 5 files you have to decide to compile or not:

libGriP.a Static library for the GriP client.
libGriPServer.a Static library for the GriP display server.
libGPDefaultTheme.a Static library for the default theme.
GrowlApplicationBridge.m A Growl-compatible API wrapper.
NSString-stringByEscapingXMLEntities.m Category for escaping XML entities.

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 Devices

The 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.

APIs

GriP 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:

  • Besides being the NSData of the whole image, iconData accepts:
    • UIImage
    • display identifier (NSString). The icon for that app will be used. In addition, the following strings are also supported:
    • "(WiFi)", "(VPN)", "(wallpaper)", "(airplane)", "(display)", "(sound)"
    • a single character (NSString) in the range of U+E000 to U+E5FF. The character will be drawn directly as an icon. Emoji icons are in this character range.
  • clickContext accepts an NSURL alongside with property list objects. When an NSURL is given, the message will launch the URL when the user tap on it. This works even without a delegate, and across process termination. (The growlNotificationWasClicked: and growlNotificationTimedOut: methods will still be invoked if a delegate is present.)
  • If clickContext is kCFBooleanFalse (i.e. [NSNumber numberWithBool:NO]), the context will be treated as nil.

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];

Guidelines

Growl 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 server

To 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 GriP

The 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.

Theming

Currently 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 themes

UIView 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;

-modifyView:asNew:withMessage: updates the view inoutView to reflect the content in message. inoutView can be a completely empty view (when asNew is YES), or already contains some changes.
+updateViewForDisclosure: updates the view when the user requires more detail (if you programmed for this possibility). In the default theme, this method is called when the “▼” button is hit, and elongates the message and allows the previously hidden detail view to be shown.
+activateView: & +deactivateView: as described. In the default theme, these are called when the message is held, and they thicken/restore the message border.

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:

[ICON] Title          X

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.m
and 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 themes

Raw 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

-initWithBundle: initialize the theme engine, with bundle being the GriP theme bundle.
-display: displays a message. It is the heart of the whole engine.
-messageClosed: if your theme supports coalescing, this tells you the message with identifier identifier has been closed. This is not called by the GriP server.

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;
@end

Since 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];
}
@end

When 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> ::

key type meaning default depends
BackgroundLeftCapWidth integer Left cap width of the background image. 0 --
BackgroundTopCapHeight integer Top cap height of the background image. 0 --
Paddings dictionary<Paddings> Spacing around the table. {top=0; left=0; bottom=0; right=0;} --
ToolbarsTotallyTransparent boolean Set whether the navigation bar and toolbar will be totally transparent. --
ToolbarsBarStyle integer If the toolbars are not totally transparent, which color should they be. 0 = Blue, 1 = Black. 0 --
ToolbarsTintColor array<Color> Tint color of the toolbars. nil --
TableSeparatorColor array<Color> Table separator color. Default is gray. nil --
TableBackgroundColor array<Color> Table background color. Default is white. nil --
TableTextColor array<Color> Table text color. Default is black. nil --
TableDescriptionColor array<Color> Table description color. Default is dark gray. nil --
SelectionStyle integer Color of selected cell. 1 = Blue, 2 = Gray 1 --
SelectionLeftCapWidth integer Left cap width of selected background image, if any. 0 --
SelectionTopCapHeight integer Top cap height of selected background image, if any. 0 --

struct <Paddings> ::

key type meaning default depends
top integer Top spacing. 0 --
left integer Left spacing. 0 --
bottom integer Bottom spacing. 0 --
right integer Right spacing. 0 --

union <Color> ::

type meaning
array...of reals and count = 1 Solid gray scale color (e.g. (1) = white).
array...of reals and count = 2 Gray scale color with alpha channel (e.g. (1, 0.5) = translucent white).
array...of reals and count = 3 Solid RGB color (e.g. (1, 0.5, 0) = orange).
array...of reals and count = 4 RGB color with alpha channel (e.g. (0, 1, 0, 0.5) = translucent green).


Comment by crash.ix, Apr 24, 2009

Great idea! But it doesnt work on my 3.0 iPhone :/ There are no grip settings in settings.app. Any ideas?

Comment by kennytm, Apr 24, 2009

@crash.ix:

That would be strange, although I did not test on 3.x devices, I did make it 3.0b1-API compatible. The only point of failure would be code signing. Do you have access to the syslog to see what was going wrong?
Comment by a...@chronzz.com, Apr 24, 2009

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

Comment by a...@chronzz.com, Apr 24, 2009

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?

Comment by kennytm, Apr 24, 2009

@a...:

Thanks! Frankly speaking because the text management API changed too radically in 3.0 I may need to really upgrade to 3.0 to work on iKeyEx. That means until 3.0 is out of beta :(
Comment by a...@chronzz.com, Apr 24, 2009

thanks. cant wait till i have ikeyex working on 3.0 you are the man :)

Comment by a...@chronzz.com, Apr 24, 2009

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.

Comment by kennytm, Apr 24, 2009

@a...:

You'll have to recompile. There's command line in the source code already.
Comment by antonioj, Apr 29, 2009

this rocks...the concept...imagine the nightmare of push notifications with normal iphone notification system

Comment by NoSpamSecure, Apr 29, 2009

iphone 2.2.1 16gb 3g - I love this. You've done a bang up job

Comment by antonioj, Apr 29, 2009

will this support other stuff besides email, like sms, push notifications, calendar items, instant messages???

Comment by antonioj, Apr 29, 2009

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 ;)

Comment by kennytm, Apr 29, 2009

@antonioj:

My device is an iPod touch 1G and it isn't on 3.0 yet so i can't test SMS & Push, but all of these are supportable.
Is the Android thing similar to Win7's Action Center?
Comment by antonioj, Apr 29, 2009

@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 :)

Comment by antonioj, Apr 30, 2009

@kennytm, your app is being discussed here:

http://macthemes2.net/forum/viewtopic.php?id=16795455

feel free to jump in too

Comment by bassilis, Apr 30, 2009

Great app!

Comment by xplosivetx, Apr 30, 2009

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.

Comment by luke.ledet, May 01, 2009

Is it possible to send notifications from the command line like growlnotify on macs?

Comment by kennytm, May 02, 2009

@xplosivetx:

You can uninstall by the ssh command: apt-get remove hk.kennytm.grip

@luke.ledet:

Yes. It is in /usr/bin/GriP.
Comment by Yakian, May 03, 2009

Is it high on memory usage?

Comment by angrybanana5000, May 03, 2009

Is there a cydia repo for the beta? I really want to try this but my computer isn't working. :(

Comment by antonioj, May 05, 2009

new beta out, it seems

Comment by antonioj, May 05, 2009

@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???

Comment by antonioj, May 05, 2009

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

Comment by ile1t00, May 05, 2009

if u wanna I can send u polish translation GriP. MSG me @ ile1t00@gmail.com

Comment by jijay.mci, May 05, 2009

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.

Comment by kennytm, May 05, 2009

@antonioj:

No I didn't know of this problem before you report it. I didn't even know Push mail worked o_O.
One box to contain everything can be done right now, but that requires collaboration from the developer.

@ile1t00:

You could upload your file to issue 99.

@jijay.mci:

GriP was designed to minimize conflicts (it doesn't use any function hooks until the latest version 0.1-11j for Game mode). Is your mail account a push mail one?
Comment by tylerreynolds1, May 05, 2009

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?

Comment by jijay.mci, May 06, 2009

@kennytm: Yes I use push mail (MS Exchange Mail). Is that the problem?

Comment by jainvinay04, May 06, 2009

why my Notification is coming in chinese?

Comment by jijay.mci, May 06, 2009

@jainvinay04: Mine's too (memory watcher). I just realize it. It happened after I installed j version manually.

Comment by jijay.mci, May 06, 2009

It's working now in my iPhone and push mail. Thanks for the update including the Youvegotmail dylib. Great job!!!

Comment by kennytm, May 06, 2009

@jainvinay04 & @jijay.mci:

The newest 0.1-11k fixed this. (Basically an error of a == b vs. !strcmp(a,b).)
Comment by itz.dtay, May 07, 2009

SMS is ideal. i'd really love it!!

Comment by antonioj, May 07, 2009

@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)

Comment by mattswartz, May 07, 2009

@kennytm:

"Game mode" only enumerates apps on the springboard and none inside folders (via Categories).
Great work. :)

Comment by kennytm, May 07, 2009

@antonioj:

Nope. GriP's architecture is still changing a lot so I hope people don't start developing right now. They may break in the release version.

@mattswartz:

Argh. Looks like I need to revert to the "slow" method. Thanks for reporting.
Comment by quin...@bbi.co.bw, May 08, 2009

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/

Comment by antonioj, May 08, 2009

there´s a new build out (k)

Comment by AWright4911, May 13, 2009

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!

Comment by jijay.mci, May 14, 2009

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?

Comment by antonioj, May 14, 2009

we need more extensions...please someone do something to support sms!

Comment by kronotygre, May 16, 2009

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.

Comment by antonioj, May 21, 2009

no updates? :(

Comment by antonioj, Jun 01, 2009
Comment by carloses.young, Jun 03, 2009

Is this project dead already?

I don't see any progress being made.

Is there any other similar project?

Comment by antonioj, Jun 03, 2009

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...

Comment by kennytm, Jun 03, 2009

@carloses.young:

If you check the changes you should see a commit made 29 hours ago. So the body is still warm :p.

Comment by carloses.young, Jun 03, 2009

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!

Comment by carloses.young, Jun 03, 2009

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.

Comment by kennytm, Jun 03, 2009

@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

Comment by PelaezBHZ, Jun 03, 2009

@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?

Comment by antonioj, Jun 04, 2009

@kennytm, i second PelaezBHZ request, because what he his working on will be an awesome GriP implementation. Please do help him.

Comment by kennytm, Jun 04, 2009

@PelaezBHZ:

You could directly send your problem to me at kennytm-at-gmail.com.

Comment by antonioj, Jun 05, 2009

loving the new version :)

Comment by carloses.young, Jun 05, 2009

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?

Comment by kennytm, Jun 05, 2009

@antonioj:

Thanks :)

@carloses.young:

The newest release is 0.1-11m. "n" is still not released. If the GriP message box is gone, you cannot launch the modal table, because it's assumed you'll launch Mail to view them later. Likewise, if you dismiss the modal table it won't display (for the same mails) again.
Comment by cmassa, Jun 08, 2009

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?

Comment by antonioj, Jun 09, 2009

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

Comment by antonioj, Jun 16, 2009

kenytm, i suppose you will update to 3.0? can you have a look into the push notifications server stuff?

Comment by kennytm, Jun 22, 2009

@antonioj:

I'm making sure everything works correctly first before exploring new areas :)
Comment by antonioj, Jun 22, 2009

Hope its soon then ;)

Comment by d.karapittis, Jun 22, 2009

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?

Comment by antonioj, Jun 23, 2009

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 ;)

Comment by whcodered, Jun 23, 2009

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 :]

Comment by antonioj, Jun 24, 2009

GriP (latest revision) working with beejive PN

http://yfrog.com/08n2jj

Comment by antonioj, Jun 24, 2009

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

Comment by blessone0, Jun 24, 2009

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

Comment by blessone0, Jun 24, 2009

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?

Comment by kennytm, Jun 24, 2009

@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.

Comment by antonioj, Jun 25, 2009

@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)

Comment by jijay.mci, Jun 25, 2009

@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. :-)

Comment by carloses.young, Jun 26, 2009

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!

Comment by antonioj, Jun 26, 2009

Happens to me too. Home button does not work when there are push boxes on foreground. I think keenytm knows about this?

Comment by carloses.young, Jun 26, 2009

@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!

Comment by antonioj, Jun 26, 2009

Yep. He should be releasing a new revision soon, even if it´s still the same beta version.

Comment by blessone0, Jun 27, 2009

@ 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.

Comment by antonioj, Jun 29, 2009

Funny. Lately i cant see text inside beejive push boxes. But on IM+ it works fine.

Comment by dhlizard, Jun 30, 2009

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 !!

Comment by antonioj, Jul 01, 2009

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 :)

Comment by jdmas0, Jul 01, 2009

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?

Comment by antonioj, Jul 02, 2009

doubt that has anything to do with grip...none of my friends that use it, and myself, have that problem

Comment by jdmas0, Jul 02, 2009

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.

Comment by Mike.S.Birch, Jul 05, 2009

I still have a problem with the home button after a push notification. Even with the new Grip (01-11o)

Comment by Mike.S.Birch, Jul 05, 2009

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?.

-Mike
Comment by antonioj, Jul 06, 2009

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

Comment by antonioj, Jul 06, 2009

I also experienced Springboard crash in same situation has Mike

Comment by Karim.Le.Vallois, Jul 06, 2009

Exactly the same problem as Mike too - Springboard crashing on more than one push notification.... :(

Comment by antonioj, Jul 06, 2009

Any of you guys experienced messages blinking on lockscreen after waking up the phone?

Comment by antonioj, Jul 06, 2009

To report bugs more extensively use this

http://code.google.com/p/networkpx/issues/list

Search before posting new issue

Comment by kennytm, Jul 06, 2009

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.

Comment by antonioj, Jul 07, 2009

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

Comment by yongchen, Jul 07, 2009

The files are still there, just deprecated. You can see them by viewing all downloads or deprecated ones.

Comment by kwgrooms, Jul 07, 2009

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.

Comment by antonioj, Jul 09, 2009

does not crach with new dlib :)

Comment by timmetz, Jul 12, 2009

Loving grip! Is there a way to make a notification stay onscreen for a longer duration?

Comment by giles.beau93, Jul 12, 2009

@timmetz in GriP preferences, for each priority, you can choose how long the alert stays on the screen. :)

Comment by markus.volke, Jul 12, 2009

grip crashes every 3 notifications... the new library doesn't work - no notifications with it. (I use IM+ 3.2)

Comment by Mike.S.Birch, Jul 12, 2009

The new .dylib fixed all my issues.

Cheers, KennyTM.

Comment by antonioj, Jul 20, 2009
Comment by antonioj, Jul 20, 2009

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...

Comment by antonioj, Jul 21, 2009

xshad0w is trying to contact you, check your mail

Comment by antonioj, Jul 29, 2009

KennyTM, may i suggest you to put GriP beta on the new BigBoss? repo for beta/alpha builds?

Comment by evil_can...@yahoo.com, Jul 29, 2009

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

Comment by Willis.Gomez, Jul 30, 2009

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.

Comment by jklurfeld, Jul 31, 2009

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.

Comment by IamTheFij, Jul 31, 2009

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.

Comment by kennytm, Jul 31, 2009

@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.

Comment by jklurfeld, Aug 02, 2009

@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.

Comment by cnachmias, Aug 02, 2009

 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.

Comment by kennytm, Aug 03, 2009

@cnachmias: Respring...??

Comment by cnachmias, Aug 03, 2009

@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?

Comment by mtaneja57, Aug 05, 2009

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?

Comment by alexna...@caramail.com, Aug 06, 2009

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

Comment by alexna...@caramail.com, Aug 07, 2009

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 ...

Comment by kennytm, Aug 09, 2009

@alexna...: apt-get remove hk.kennytm.gripgrip, maybe?

Comment by isrboy99, Aug 10, 2009

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?

Comment by alexna...@caramail.com, Aug 11, 2009

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)

Comment by cail9970, Aug 12, 2009

when I installed the beta deb, I don't need the mobilesubstrate but the preferenceloader, which is in cydia

Comment by hpridham, Aug 13, 2009

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!

Comment by antonioj, Aug 16, 2009

Good ideas in there!

Kenny, any info about upcoming update?

Comment by charpe...@mac.com, Aug 18, 2009

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

Comment by IamTheFij, Aug 20, 2009

@hpridham

That would be really cool if this was implemented! My big fingers always miss those X's. Haha

Comment by antonioj, Aug 26, 2009

KennyTM, no news about GriP? I hope you don´t let this project down :( It´s so important for the iphone scene...

Comment by jacobp76, Aug 27, 2009

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?

Comment by Christophe.Grant, Aug 27, 2009

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.

Comment by todd.pratt, Aug 27, 2009

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.

Comment by sickd3vil, Aug 28, 2009

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?

Comment by antonioj, Aug 28, 2009

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

Comment by jacobp76, Aug 28, 2009

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.

Comment by jdmas0, Sep 03, 2009

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.

Comment by antonioj, Sep 07, 2009

no updates :/

Comment by hpridham, Sep 07, 2009

Anyone working on an alternative to pressing the 'X' to dismiss notifications?

Comment by ryanmachin, Sep 09, 2009

Sad to see no updates on this, or any indication that it's even being worked on anymore.

@KennyTM any news for us?

Comment by jklurfeld, Sep 13, 2009

@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

Comment by antonioj, Sep 15, 2009

Man, it really sucks KennyTM is focusing so much in the other projects and forgot about GriP :(

Comment by ryanmachin, Sep 18, 2009

@antonioj It sucks hard! Really wish he would find the love again for this project as it certainly seems like he lost interest completely :(

Comment by IamTheFij, Sep 22, 2009

@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.

Comment by xxdesmus, Sep 22, 2009

Crashing on 3.1 if you enable push notifications. Just an FYI.

Comment by antonioj, Sep 22, 2009

IamTheFij?, that would be awesome.

Comment by antonioj, Sep 23, 2009
Comment by ChiLLiN123, Sep 25, 2009

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?

Comment by ryanmachin, Sep 27, 2009

@Chillin123 i'm having the same problem too, I think you should post it in the issues section

Comment by antonioj, Sep 28, 2009

My main desire right now is having the Double Heigh Statusbar fully working, and external acess to GriP´s message log

Comment by ryanmachin, Sep 28, 2009

@antonioj We can dream! Two months since an update on this, seems kenny is very busy on other projects :(

Comment by erich.erich, Sep 28, 2009

Iphone 3g firmware 3.0 : version grip :0.1-11r I can't change notification location : always top right

Comment by Ian.fij, Oct 06, 2009

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.

Comment by carloses.young, Oct 06, 2009

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.

Comment by itz.dtay, Oct 06, 2009

Pleasee back to this KennyTM :(

Comment by Ian.fij, Oct 08, 2009

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.

Comment by antonioj, Oct 08, 2009

KennyTM, please say something. Your silence is unexplainable.

Comment by Nick7502, Oct 11, 2009

Best app i use, you should update it to make it work on 3.1

Comment by PeterHahn68, Oct 18, 2009

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 :)

Comment by jordan.cst, Oct 21, 2009

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

Comment by tom.blum85, Oct 23, 2009

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

Comment by boseyjones, Oct 23, 2009

To enable the command line settings just run GriP -m in terminal. After that activate it in Settings/GriP/Per-App Settings/

Comment by tom.blum85, Oct 23, 2009

The modded GriP Message Log Sbsettings toggle files can be found on:

http://code.google.com/p/networkpx/issues/detail?id=175#makechanges

Trinitus

Comment by fspilotcale, Oct 29, 2009

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.

Comment by ahmad.gdesigner, Oct 29, 2009

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

Comment by antonioj, Oct 30, 2009

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...

Comment by sebastian.grothe, Nov 04, 2009

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?

Comment by treasonftg, Nov 04, 2009

This software works great, but the doubled emails in Exchange is a nuisance.

Comment by cilfone, Nov 17 (3 days ago)

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.

Comment by jayblaze2, Nov 18 (3 days ago)

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..


Sign in to add a comment
Hosted by Google Code